网络编程socket套接字

时间:2021-01-08 11:02:18

一、SOCKET编程的步骤:

socket():创建一个socket,主动套接口。

bind();绑定ip和端口号到socket,需先配置ip、端口号。

connect():客户机(client)端和服务器发送请求建立连接。

listen():服务器(serv)监听client发送的请求。

accept():完成连接,阻塞响应。

sendto():发送数据

recvfrom():接收数据

close():分别关闭客户机和服务器。


二、函数介绍

1、int socket(int family,int type,int protocol)

family:多使用AF_INET    ipv4协议

type:

(1)流式套接字,SOCKET_STREAM,遵循tcp协议

(2)数据报套接字,SOCKET_DGRAM,遵循udp协议

(3)原始套接字为测试新的网络协议。SOCK_RAW。

protocol:协议类型参数


2、int bind(int sockfd,const struct sockaddr * myaddr,socklen_t addrlen)

sockfd:socket()成功返回的文件描述符

struct sockaddr * myaddr:为通用socket地址,需要转换为struct sockaddr_in * myaddr(下面相同),且为本身的地址。

addrlen:地址长度


3、ip和端口的配置:

bzero(&servaddr,sizeof(servaddr));

servaddr.sin_family = AF_INET;

servaddr.sin_addr.s_addr = htol(INADDR_ANY);

servaddr.sin_port = htos(SERV_PORT);


4、int listen(int sockfd,int backlog)

backlog:最大连接客户机的数目


5、int accept(int sockfd,struct sockaddr * cliaddr,socklen_t addrlen)

cliaddr:客户机的地址。


6、int connect(int sockfd,struct sockaddr * servaddr,socklen_t addrlen)

servaddr:服务器的地址