通过此程序,可以简单的实现客户端跟服务端之间的通信,基于面向连接(TCP协议)的套接字。
所需函数说明:
服务器端:
WSAStartup() //初始化套接字
socket() //创建套接字
bind() //绑定套接字
listen() // 监听套接字,是否有客户端连接请求
accept() //接收客户端请求
recv() //接收数据
send() //发送数据
WSACleanup() //释放套接字
客户端:
WSAStartup() //初始化套接字
socket() //创建套接字
connct() // 连接服务器,成功后即可收发数据
recv() //接收数据
send() //发送数据
WSACleanup() //释放套接字
下面是代码的实现:
客户端:
// Client.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<WinSock2.h>
#pragma comment(lib,"ws2_32.lib")
int _tmain(int argc, _TCHAR* argv[])
{
WSADATA wsaData;//初始化套接字函数的参数
SOCKET ClientSocket;//客户端自己的套接字
SOCKADDR_IN ServerAddr;//服务器地址信息
int ServerPort = 8888;//连接服务器8888端口
char ServerIPAddr[50] = "127.0.0.1";//127.0.0.1这个IP地址代表本机
char *SendData = "Hello World";//发送数据
char ReceiveBuffer[1024] = "";//接收数据缓冲区
int SendLength = 1;
int Result = -1;
if(Result = WSAStartup(MAKEWORD(2 ,1) ,&wsaData) != 0)//初始化套接字
{
printf("WSAStartup error, %d" ,Result);
return -1;
}
//绑定套接字,第一个参数指定IP地址类型为IPV4,第二个为数据流,第三个为TCP协议
ClientSocket = socket(AF_INET ,SOCK_STREAM ,IPPROTO_TCP);
if(ClientSocket < 0)
{
printf("socket failed ,%d\n" ,WSAGetLastError());
return -1;
}
memset(&ServerAddr ,0 ,sizeof(ServerAddr));//套接字清零。
ServerAddr.sin_family = AF_INET;/