tcp socket对话之vs2013

服务器:

1.创建套接字

2.绑定

3.listen监听

4.accept创建接收套接字

5.收发消息

6.close

客户端:

1.创建套接字

2.bind绑定

3.connect连接

4.收发消息

5.close

服务器端代码:

#include <iostream>
#include <winsock2.h>
#pragma comment(lib,"ws2_32.lib") 
using namespace std;


int main()
{
WSADATA ws;
WSAStartup(0x0202, &ws);
SOCKET sock = socket(AF_INET, SOCK_STREAM, 0);
if (INVALID_SOCKET == sock)
{
cout << "出错:" << WSAGetLastError() << endl;
return -1;
}
sockaddr_in sa;
sa.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
sa.sin_family = AF_INET;
sa.sin_port = htons(6666);
int ret = bind(sock, (sockaddr*)&sa, sizeof(sa));
if (ret < 0)
{
cout << "bind error" << endl;
return -1;
}
ret = listen(sock, 10);
if (ret < 0)
{
cout << "listen error" << endl;
}
cout << "listen..." << endl;
SOCKET fd = accept(sock, NULL, NULL);
char buf[100] = { 0 };
while (true)
{
recv(fd, buf, sizeof(buf), 0);
cout << "b:" << buf << endl;
memset(buf, 0, sizeof(buf));
cout << "a:";
cin >> buf;
send(fd, buf, sizeof(buf), 0);
memset(buf, 0, sizeof(buf));
}
closesocket(fd);
closesocket(sock);


return 0;

}

客户端代码:

#include <iostream>
#include <winsock2.h>
#pragma comment(lib,"ws2_32.lib") 
using namespace std;


int main()
{
WSADATA ws;
WSAStartup(0x0202, &ws);
SOCKET sock = socket(AF_INET, SOCK_STREAM, 0);
if (INVALID_SOCKET == sock)
{
cout << "出错:" << WSAGetLastError() << endl;
return -1;
}
sockaddr_in sa,sb;
sa.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
sa.sin_family = AF_INET;
sa.sin_port = htons(9999);
sb.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
sb.sin_family = AF_INET;
sb.sin_port = htons(6666);
int ret = bind(sock, (sockaddr*)&sa, sizeof(sa));
if (ret < 0)
{
cout << "bind error" << endl;
return -1;
}
ret = connect(sock, (sockaddr*)&sb, sizeof(sb));
if (ret < 0)
{
cout << "connect error" << endl;
}
char buf[100] = { 0 };
while (true)
{
cout << "b:";
cin >> buf;
send(sock, buf, sizeof(buf), 0);
memset(buf, 0, sizeof(buf));
recv(sock, buf, sizeof(buf), 0);
cout << "a:" << buf << endl;
memset(buf, 0, sizeof(buf));
}
closesocket(sock);


return 0;
}

猜你喜欢

转载自blog.csdn.net/pycharm_u/article/details/79719968