使用TCP+winsock写的一个简单客户端程序(转)

来源:互联网 发布:python开发环境下载 编辑:程序博客网 时间:2024/05/16 14:00

本代码用VS2008编写:

 

[cpp:firstline[1]] view plaincopyprint?
  1. #include <winsock2.h>  
  2. #include <stdio.h>  
  3. #pragma comment(lib,"ws2_32.lib")  
  4. void main()  
  5. {  
  6.     WSADATA          wsaData;  
  7.     SOCKET           s;  
  8.     SOCKADDR_IN      ServerAddr;  
  9.     int Port = 8060;  
  10.     int Ret;  
  11.     //初始化winsock 2.2版本  
  12.     if((Ret = WSAStartup(MAKEWORD(2,2),&wsaData)) !=0)  
  13.     {  
  14.         printf("Error:WSAStartup failed with %d/n",Ret);  
  15.     }  
  16.     //创建一个新的套接字来建立客户机连接  
  17.     if((s = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)) == INVALID_SOCKET)  
  18.     {  
  19.         printf("ERROR:socket failed with %d/n",WSAGetLastError());  
  20.         WSACleanup();  
  21.         return;  
  22.     }  
  23.     //建立一个SOCKADDR_IN结构,用来连接到8060端口的监听服务器  
  24.     ServerAddr.sin_family = AF_INET;  
  25.     ServerAddr.sin_port = htons(Port);  
  26.     ServerAddr.sin_addr.s_addr = inet_addr("127.0.0.1");  
  27.     //用套接字s创建一个到服务器的连接  
  28.     if(SOCKET_ERROR == connect(s,(SOCKADDR *)&ServerAddr,sizeof(ServerAddr)))  
  29.     {  
  30.         printf("connect failed with %d/n",WSAGetLastError());  
  31.         closesocket(s);  
  32.         WSACleanup();  
  33.         return;  
  34.     }  
  35.     printf("connect succeed!/n");  
  36.     //发送数据  
  37.     if(SOCKET_ERROR == send(s,"hello",5,0))  
  38.     {  
  39.         printf("send failed with %d/n",WSAGetLastError());  
  40.         closesocket(s);  
  41.         WSACleanup();  
  42.         return;  
  43.     }  
  44.     printf("send succeed!/n");  
  45.     //关闭套接字  
  46.     closesocket(s);  
  47.     //应用程序完成对连接的处理后,调用WSACleanup  
  48.     WSACleanup();