本代码用VS2008编写:
- #include <winsock2.h>
- #include <stdio.h>
- #pragma comment(lib,"ws2_32.lib")
- void main()
- {
- WSADATA wsaData;
- SOCKET s;
- SOCKADDR_IN ServerAddr;
- int Port = 8060;
- int Ret;
- //初始化winsock 2.2版本
- if((Ret = WSAStartup(MAKEWORD(2,2),&wsaData)) !=0)
- {
- printf("Error:WSAStartup failed with %d/n",Ret);
- }
- //创建一个新的套接字来建立客户机连接
- if((s = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)) == INVALID_SOCKET)
- {
- printf("ERROR:socket failed with %d/n",WSAGetLastError());
- WSACleanup();
- return;
- }
- //建立一个SOCKADDR_IN结构,用来连接到8060端口的监听服务器
- ServerAddr.sin_family = AF_INET;
- ServerAddr.sin_port = htons(Port);
- ServerAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
- //用套接字s创建一个到服务器的连接
- if(SOCKET_ERROR == connect(s,(SOCKADDR *)&ServerAddr,sizeof(ServerAddr)))
- {
- printf("connect failed with %d/n",WSAGetLastError());
- closesocket(s);
- WSACleanup();
- return;
- }
- printf("connect succeed!/n");
- //发送数据
- if(SOCKET_ERROR == send(s,"hello",5,0))
- {
- printf("send failed with %d/n",WSAGetLastError());
- closesocket(s);
- WSACleanup();
- return;
- }
- printf("send succeed!/n");
- //关闭套接字
- closesocket(s);
- //应用程序完成对连接的处理后,调用WSACleanup
- WSACleanup();
- }