SOCKET s = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);//创建TCP套接字
sockaddr_in socketAddr;
socketAddr.sin_family = PF_INET;
socketAddr.sin_addr.S_un.S_addr = inet_addr("127.1.1.0");
socketAddr.sin_port = htons(827);
connect(s,(SOCKADDR*)&socketAddr,sizeof(SOCKADDR));
char szBuffer[MAXBYTE] = {0};
recv(s,szBuffer,MAXBYTE,NULL);
printf("szBuffer = %s \r\n",szBuffer);
closesocket(s);
WSACleanup();//释放套接字库
return 0;
}
#include
#include
#pragma comment (lib,"ws2_32")//显示连接套接字库
int main()
{
WSADATA wsaData;
WSAStartup(MAKEWORD(2,2),&wsaData);//初始化套接字库
SOCKET s = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);//创建TCP套接字
sockaddr_in socketAddr;
socketAddr.sin_family = PF_INET;
socketAddr.sin_addr.S_un.S_addr = inet_addr("127.1.1.0");
socketAddr.sin_port = htons(827);
connect(s,(SOCKADDR*)&socketAddr,sizeof(SOCKADDR));
char szBuffer[MAXBYTE] = {0};
recv(s,szBuffer,MAXBYTE,NULL);
printf("szBuffer = %s \r\n",szBuffer);
closesocket(s);
WSACleanup();//释放套接字库
return 0;
}
基于UDP协议的“Hello World !”
UDP客户端与服务器的编写方法与TCP的相似,只要主要其中的差别就行了。
服务器端代码如下:
[cpp] #include
#include
#pragma comment (lib,"ws2_32")
int main(int argc, char* argv[])
{
WSADATA wsaData;
WSAStartup(MAKEWORD(2,2),&wsaData);
SOCKET s=socket(PF_INET,SOCK_STREAM,IPPROTO_UDP);
sockaddr_in sockAddr;
sockAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
sockAddr.sin_family = PF_INET;
sockAddr.sin_port = htons(827);
bind(s,(SOCKADDR*)&sockAddr,sizeof(SOCKADDR));
sockaddr_in clientAddr;
int len=sizeof(sockaddr_in);
char buf[MAXBYTE] = {0};
recvfrom(s,buf,MAXBYTE,0,(SOCKADDR*)&clientAddr,&len);
printf("%s \r\n",buf);
sendto(s,"hello world client",strlen("hello world client")+sizeof(char),0,(SOCKADDR*)&clientAddr,sizeof(SOCKADDR));
closesocket(s);
WSACleanup();
return 0;
}
#include
#include
#pragma comment (lib,"ws2_32")
int main(int argc, char* argv[])
{
WSADATA wsaData;
WSAStartup(MAKEWORD(2,2),&wsaData);
SOCKET s=socket(PF_INET,SOCK_STREAM,IPPROTO_UDP);
sockaddr_in sockAddr;
sockAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
sockAddr.sin_family = PF_INET;
sockAddr.sin_port = htons(827);
bind(s,(SOCKADDR*)&sockAddr,sizeof(SOCKADDR));
sockaddr_in clientAddr;
int len=sizeof(sockaddr_in);
char buf[MAXBYTE] = {0};
recvfrom(s,buf,MAXBYTE,0,(SOCKADDR*)&clientAddr,&len);
printf("%s \r\n",buf);
sendto(s,"hello world client",strlen("hello world client")+sizeof(char),0,(SOCKADDR*)&clientAddr,sizeof(SOCKADDR));
closesocket(s);
WSACleanup();
return 0;
}
客户端代码如下:
[cpp] #include
#include
#pragma comment (lib,"ws2_32.lib")
int main()
{
WSADATA wsaData;
WSAStartup(MAKEWORD(2,2),&wsaData);
SOCKET s=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
sockaddr_in sockAddr;
sockAddr.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
sockAddr.sin_family = AF_INET;
sockAddr.sin_port = htons(827);
sendto(s,"hello world server",strlen("hello world server")+sizeof(char),0,(SOCKADDR*)&sockAddr,sizeof(