实现简单的客户端/服务端通信过程的流程图
首先进行服务端的初始化
a.创建套接字---socket
//Create Socket
ServerSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if ( ServerSocket == INVALID_SOCKET )
{
cout<<"Create Socket Failed:"<<GetLastError()<<endl;
return -1;
}
LocalAddr.sin_family = AF_INET;
LocalAddr.sin_addr.s_addr = inet_addr(IP_ADDRESS);
LocalAddr.sin_port = htons(PORT);
memset(LocalAddr.sin_zero, 0x00, 8);
//Bind Socket
Ret = bind(ServerSocket, (struct sockaddr*)&LocalAddr, sizeof(LocalAddr));
if ( Ret != 0 )
{
cout<<"Bind Socket Failed:"<<GetLastError()<<endl;
return -1;
}
//listen
Ret = listen(ServerSocket, 10);
if ( Ret != 0 )
{
cout<<"listen Socket Failed:"<<GetLastError()<<endl;
return -1;
}
然后是客户端的连接
a.客户端建立套接字连接---connect
//Create Socket
ClientSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if ( ClientSocket == INVALID_SOCKET )
{
cout<<"Create Socket Failed:"<<GetLastError(
TCP套接字实现客户端/服务端通信

本文介绍了如何使用流式套接字实现简单的TCP客户端与服务端的通信流程,包括服务端的初始化、客户端连接、服务端accept、客户端send数据和服务端recv数据的步骤。特别指出客户请求在listen队列中的FIFO原则和accept函数的调用时机。最后给出了源码示例。
最低0.47元/天 解锁文章
6837

被折叠的 条评论
为什么被折叠?



