Linux的服务器和客户端之间的通讯

本文展示了一个基于C语言的简易TCP服务器与客户端程序的实现过程。服务器通过监听指定端口接收客户端连接,并能读取客户端发送的数据,再将接收到的数据原样返回。客户端则负责连接服务器并发送数据,同时接收服务器回传的数据。该程序使用了标准的socket编程接口,包括socket()、bind()、listen()、accept()、connect()、read()和write()等函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<stdio.h>//服务器
#include<sys/socket.h>
#include<netinet/ip.h>
#include<netinet/ip.h>
#define PORT 7878
int main()
{
  int socketfd,newfd,ret;
  char buf[100]="";
  struct sockaddr_in info;
  //socket
  socketfd=socket(AF_INET,SOCK_STREAM,0);
  if(socketfd<0)
  goto err;
  info.sin_family=AF_INET;
  info.sin_port=htons(PORT);
  info.sin_addr.s_addr=0;
  ret=bind(socketfd,(void*)&info,sizeof(info));
  if(ret)
   goto err;
   listen(socketfd,10);
   newfd=accept(socketfd,NULL,NULL);
   while(1)
   {
       read(newfd,buf,sizeof(buf));
       printf("buf:%s\n",buf);
//     fun(buf);
       write(newfd,buf,sizeof(buf));
   }
   return 0;
   err:
   perror("");
}
#include<stdio.h>//客户端
#include<sys/socket.h>
#include<netinet/ip.h>
#include<netinet/ip.h>
#define PORT 7878
int main(int argc,char **argv)
{
 int socketfd,ret;
 struct sockaddr_in info;
 char buf[100]="";
 //click socket
 socketfd=socket(AF_INET,SOCK_STREAM,0);
 if(socketfd<0)
 goto err;
 info.sin_family=AF_INET;/*address family:AF_INET*/
 info.sin_port=htons(PORT);/*port in network byte order*/
 info.sin_addr.s_addr=inet_addr("127.0.0.1");/*internet address*/
 //connect server
 ret=connect(socketfd,(void*)&info,sizeof(info));
 if(ret)
 goto err;
 while(1)
 {
   gets(buf);
   //send data to the server
   write(socketfd,buf,sizeof(buf));
   read(socketfd,buf,sizeof(buf));
   puts(buf);
 }
 return 0;
 err:
 perror("");

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值