server
服务器端
- 初始化
- socket创建一个SOCKET类型的变量,它规定了该套接字是UDP或TCP或其他类型
- bind 给刚刚创建的socket赋值 (具体这个端口)
- listen(socket,5);一般这样写就可以了
- accept();
- 收发数据;
const short SEVEREPORT = 51000;
int main()
{
WSADATA wsData;
WSAStartup(0x0202, &wsData);
SOCKET soc = socket(AF_INET, SOCK_STREAM, 0);
sockaddr_in sa = { AF_INET,htons(SEVEREPORT) };
int n = bind(soc, (sockaddr*)&sa, sizeof(sa));
if (n<0)
{
cout << "bind err:" << WSAGetLastError() << endl;
return 0;
}
listen(soc, 5);
int nLen = sizeof(sa);
SOCKET soca= accept(soc, (sockaddr*)&sa,&nLen);
if (soca == INVALID_SOCKET)
{
cout << "accept err:" << WSAGetLastError() << endl;
return 0;
}
char sBuffer[32] = { 0 };
while ((n=recv(soca, sBuffer, sizeof(sBuffer) - 1, 0))>0)
{
sBuffer[n] = 0;
cout << sBuffer<<endl;
}
return 0;
}
client
客户端
- 初始化
- socket
- connect();将客户端的socket与服务器端进行链接
- 收发数据
const short SEVERPORT = 51000;
int main()
{
//初始化
WSAData wsaData;
WSAStartup(0x0202, &wsaData);
SOCKET soc = socket(AF_INET, SOCK_STREAM, 0);
if (soc == INVALID_SOCKET)
{
cout << "socket err:" << WSAGetLastError() << endl;
return 0;
}
//要连接到的服务器
sockaddr_in sato = { AF_INET,htons(51000) };
sato.sin_addr.S_un.S_addr = inet_addr("192.168.198.1");
int n = connect(soc, (sockaddr*)&sato, sizeof(sato));
if (n < 0)
{
cout << "connect err:" << endl;
return 0;
}
char buf[250] = {0};
while (true)
{
cout << "请输入要发送的数据:";
cin >> buf;
send(soc, buf, strlen(buf), 0);
}
return 0;
}