您的位置:首页 > 理论基础 > 计算机网络

TCP

2016-07-05 19:14 381 查看

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
= 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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: