客户端发送的消息,服务端接收并在终端中显示出来
服务端代码(server.c):
#include <stdio.h>
#include <sys/socket.h>
#include<netinet/in.h>
#include <errno.h>
#include <unistd.h>
#include <strings.h>
int main(void)
{
//1.建立TCP套接字sockfd
int sockfd = socket(AF_INET,SOCK_STREAM,0);
//2.绑定套接字sockfd与IP地址和端口号
struct sockaddr_in addr;//本机地址结构体
socklen_t len = sizeof(addr);
bzero(&addr,len);
addr.sin_family = AF_INET;//协议簇
addr.sin_addr.s_addr = htonl(INADDR_ANY);//自动获取本机IP
addr.sin_port = htons(50021);//端口号
bind(sockfd,(struct sockaddr *)&addr,len);
//3.设置套接字socket进入监听状态
listen(sockfd,3);
//4.等待远程客户端连接请求
//5.收到请求后,得到一个专用于收发数据的连接套接字connfd
int connfd = accept(sockfd,NULL,NULL);
//6.使用连接套接字与客户端通信
char buf[100];
while(1)
{
bzero(buf,100);
read(connfd,buf,100);//读取客服端发来的信息
printf("receive from client massage:%s",buf);
}
close(connfd);
close(sockfd);
return 0;
}
客户端代码client.c
#include <stdio.h>
#include <sys/socket.h>
#include<netinet/in.h>
#include <errno.h>
#include <unistd.h>
#include <string.h>
int main(void)
{
//1.建立TCP套接字sockfd
int sockfd = socket(AF_INET,SOCK_STREAM,0);
//2.绑定套接字sockfd与IP地址和端口号
struct sockaddr_in addr;//本机地址结构体
socklen_t len = sizeof(addr);
bzero(&addr,len);
addr.sin_family = AF_INET;//协议簇
addr.sin_addr.s_addr = htonl(INADDR_ANY);//自动获取本机IP
addr.sin_port = htons(50021);//端口号
//3.对服务端发起连接请求
if(connect(sockfd,(struct sockaddr *)&addr,sizeof(addr))==0)
{
printf("connection sucessful\n");
}
//4.与服务端进行通信
char sendbuf[100];
while(1)
{
bzero(sendbuf,100);
fgets(sendbuf,100,stdin);//从键盘获取字符,到sendbuf
write(sockfd,sendbuf,strlen(sendbuf));//发送sendbuf
}
close(sockfd);
return 0;
}
效果图:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)