大家好,又见面了,我是你们的朋友全栈君。
服务器端
/**************************************
*函数功能:创建套接字的函数
*输入参数:无
*输出参数:无
*返回值:套接字的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