c语言socket编程流程,C语言socket编程简单步骤「建议收藏」

2022-09-14 10:26:56 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

服务器端

/**************************************

*函数功能:创建套接字的函数

*输入参数:无

*输出参数:无

*返回值:套接字的ID

*/

int creat_socket()

{

int ret;

ret=socket(AF_INET,SOCK_STREAM,0);

if(ret==-1)

{

perror(“socket error”);

exit(1);

}

printf(“创建socket成功n”);

return ret;

}

/**************************************

*函数功能:绑定本地IP和端口号到socket

*输入参数:套接字ID,网际套接字地址结构体,端口号

*输出参数:无

*返回值:无

*/

void bind_socket(int socketid,struct sockaddr_in server_addr,int port)

{

int ret;

memset(&server_addr,0,sizeof(struct sockaddr_in));

server_addr.sin_family=AF_INET;

server_addr.sin_port=htons((short)port);

//连接请求使用一个特殊的地址

server_addr.sin_addr.s_addr=INADDR_ANY;

//绑定本地地址和端口号,参数二强转成通用类型

ret=bind(socketid,(struct sockaddr *)&server_addr,sizeof(server_addr));

if(ret<0)

{

perror(“bind error”);

exit(1);

}

printf(“bind success….n”);

}

/**************************************

*函数功能:监听套接字

*输入参数:套接字ID

*输出参数:无

*返回值:无

*/

void listen_socket(int socketid)

{

int ret;

ret=listen(socketid,ONLINE_MAX);//启动监听

if(ret==-1)

{

perror(“listen error”);

exit(1);

}

printf(“listening success….n”);

//通过accept接收客户端连接

}

/**************************************

*函数功能:接收客户端的套接字连结

*输入参数:套接字ID,网际套接字地址结构体

*输出参数:无

*返回值:连结的套接字ID

*/

int accept_socket(int socketid,struct sockaddr_in client_addr)

{

int ret;

int len;

len=sizeof(client_addr);

ret=accept(socketid,(struct sockaddr *)&client_addr,&len);

if(ret==-1)

{

perror(“accept error”);

exit(1);

}

printf(“accept success….n”);

return ret;

}

客户端:

/**************************************

*函数功能:创建套接字的函数

*输入参数:无

*输出参数:无

*返回值:套接字ID

*/

int creat_socket()

{

int ret;

ret=socket(AF_INET,SOCK_STREAM,0);

if(ret==-1)

{

perror(“socket error”);

exit(1);

}

printf(“创建socket成功n”);

return ret;

}

/**************************************

*函数功能:连接套接字的函数

*输入参数:套接字ID,网际套接字地址结构体

*输出参数:无

*返回值:无

*/

void connect_socket(int socketid,struct sockaddr_in server_in)

{

int ret;

ret=connect(socketid,(struct sockaddr *)&server_in,sizeof(server_in));

if(ret==-1)

{

perror(“connect error”);

exit(1);

}

printf(“connecting….n”);

}

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/158498.html原文链接:https://javaforall.cn

0 人点赞