对socket的理解

Client处理

 

在Socket处理的时候

1.    WSADATA

2.    WSASrartup

3.    建立本地的Socket

4.    建立本地的Socket地址

5.    Connection(Socket,&sockaddr_in,sizeof(sockaddr_in)

6.    等待服务器响应 然后发送请求 Send(socket,SendData,strlen(SendData),0)

7.    接收服务器的响应需要建立缓冲区

char c_str[m];recv(socket,c_str,strlen(c_str),0)

8.    完了之后closeSocket();断开socket

9.    WSACleanup()

 

 

Sever处理

1.    WSADATA

2.    WSAStartup();

3.    创建服务器端SocketSever

4.    设立服务器端sockaddr_int服务器端socket地址

5.    bind服务器端套接字可服务器端地址bind(socketSever,sockaddr_in,sizeof(sockaddr_in)

6.    开始监听 用listen监听有没有客户端请求服务端

Listen(socketsever,5);

 

 

7.    建立缓存客户端的socket和sockaddr_in用来接收客户端的socket和sockaddr_in;

8.    建立接收内容char temp[100]这里在这里相当于缓冲区用来接收客户端的请求;

9.    同意连接accept接收客户端的Socket在accept参数中sockaddr_int这个是用来接收客户端的地址;accept(SocketSever,(sockaddr_in*)&SockAddr_in_Client,sizeof(SockAddr_in_Client),accept返回一个客户端的socket然后客户端的socketaddress保存在sockaddr_in中

10. 接收数据建立接收的数据缓冲区RecvData,这里需要直接使用accept得到的客户端的socket

recv客户端recv(SocketClient,RecvData,sizeof(RecvData):

11.服务端可以向客户端发送数据;

Send(SocketClient,SendData,sizeof(SendData),0)

记住这里的SocketClient是从accept那里得到的Socket accept会返回一个客户端的socket,而且还给了sockaddr_int

12.关闭客户端套接字close(SocketClient)

13.关闭服务端套接字close(SocketSever)

14.WSACleanup();

 

 

 

你可能感兴趣的:(Socket)