Socket通信详解

详细介绍socket通信

Socket

1.用于描述IP地址和端口,是一个通信链的句柄。

2.socke是建立网络连接时使用的,在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。

3.Socket的连接过程:

1)服务器监听,是服务器端套接字并不定位具体的客户端套接字,而是出于等待连接的状态,实时监控网络状态。

2)客户端请求,是指有你客户端的套接字提出连接请求,要连接的目标是服务器的套接字。为此,客户端的套接字必须首先描述它(客户端套接字)所要连接的服务器的套接字,指出服务器套接字的地址,端口号。然后向服务器发出连接请求。

3)连接确认,是指当服务器端的套接字监听到或者说接到客户端套接字的连接请求,服务器端的套接字就建立起一个新的线程,把服务器端的套接字的描述发给客户端,一旦客户端确认了此描述有效,连接就建立好了。而,服务器端套接字继续处于监听状态,继续接受其他客户端套接字的连接请求。

4.常用Socket的类型:

1)流式Socket(SOCKET_STREAM)

流式是面向连接的TCP服务应用2)数据报式Socket(SOCKET_DGRAM)

数据报是无连接的UDP应用

5.Socket相关的函数

1)int connect(SOCKET s,const struct sockaddr FAR *name,int namelen);

客户端socket通过该函数和服务器端socket连接,如果连接成功返回0,否则返回SOCK_ERR2)int listen(SOCKET s,int backlog );

服务器端socket用来监听是否有来自客户端的socket的信号3)SOCKET accept(SOCKET s, struct sockaddr FAR *addr,int FAR *addrlen); 服务器调用该函数用来在Listen到得客户端请求序列中取第一个接受请求,并创建一个新的客户套接字连接通道,如果连接成功,就返回新创建的套接字的描述符,如果失败,则返回INVALID_SOCKET4)int send(SOCKET s,const char FAR *buf,int len,int flags);

发送数据5)int recv(SOCKET s,char FAR *buf,int len,int flags);

接收数据

6.Socket的使用步骤

#include <winsock2.h>//#include <windows.h>#pragma comment(lib,"ws2_32.lib")

1).建立一个socket

例如:

socket s1;

第 1 页

你可能喜欢

  • HTTP协议详解
  • C#编程实例
  • Socket编程
  • C#从入门到精通
  • TCP协议
  • 路由算法

Socket通信详解相关文档

最新文档

返回顶部