最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

基于TCP网络编程实现代码

来源:动视网 责编:小OO 时间:2025-09-29 19:31:46
文档

基于TCP网络编程实现代码

基于TCP网络编程实现代码:/***********************************server.c************ ****************************/#include#include#include#include#include#include#include#include#includeexterninterrno;intmain(){   //step1 secket  intfd=socket(AF_INET,SOCK_STREAM,
推荐度:
导读基于TCP网络编程实现代码:/***********************************server.c************ ****************************/#include#include#include#include#include#include#include#include#includeexterninterrno;intmain(){   //step1 secket  intfd=socket(AF_INET,SOCK_STREAM,
基于TCP网络编程实现代码:

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

*******server.c************ 

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

#include

#include

#include

#include

#include

#include

#include

#include

#include

extern int errno;

int main()

{

   //step1  secket

   int fd=socket(AF_INET,SOCK_STREAM,0);

   fprintf(stderr,"socket id=%d\\n",fd);

   //setp2  bind

   struct sockaddr_in servaddr;

   servaddr.sin_family = AF_INET;

   servaddr.sin_port = htons(7777);

   servaddr.sin_addr.s_addr = htonl(INADDR_ANY);

   printf("ip:%s   port:%d\\n",inet_ntoa(servaddr.sin_addr),ntohs(servaddr.sin_port));

   int ret=bind(fd,(struct sockaddr *)&servaddr,sizeof(servaddr));

   if(ret<0)

   {

      fprintf(stderr,"error:%s\\n",strerror(errno));

      close(fd);

      return -1;

   }

   //step3 linsten

   listen(fd,5);

   //setp4 aet

   int newfd;

   struct sockaddr_in peer;

   socklen_t size;

   size=sizeof(peer);

   printf("waiting for client connectting.......\\n ");

   newfd=accept(fd,(struct sockaddr *)&peer,&size);  

   //client ip  port

   printf("ip:%s   port:%d\\n",inet_ntoa(peer.sin_addr),ntohs(peer.sin_port));

   char  buf[100];

   //step5 transform date

   while(1)

   {

       fgets(buf,100,stdin);

       write(newfd,buf,strlen(buf));

       int cnt1=read(newfd,buf,100);

       write(1,buf,cnt1);

   }

   close(newfd);

   return 0;

}

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

*******client.c************ 

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

#include

#include

#include

#include

#include

#include

#include

#include

#include

extern int errno;

int main()

{

   

   int fd=socket(AF_INET,SOCK_STREAM,0);

   // server addr

   struct sockaddr_in servaddr;

   servaddr.sin_family = AF_INET;

   servaddr.sin_port = htons(7777);

   servaddr.sin_addr.s_addr = inet_addr("172.0.0.1");

   // conecting..........

   int ret=connect(fd,(struct scokaddr *)&servaddr,sizeof(servaddr));

   if(ret<0)

    {   

       fprintf(stderr,"error:%s\\n",strerror(errno));

       close(fd);

       return -1;

    }

   char  buf[100];

   int cnt;

   while(1)

   {   

      cnt = read(fd,buf,100);

      write(1,buf,cnt);

       

      fgets(buf,100,stdin);

      write(fd,buf,strlen(buf));

   }

   close(fd);

   return 0;

}

分别编译与执行:

                     gcc  tcpserver.c -o server

                     gcc  tcpclient.c   -o clent

                     在不同终端 运行  ./server    ./clent

服务器先对客户机发信息 ,然后客户机在对服务器发信息    这样就可以互相通信

文档

基于TCP网络编程实现代码

基于TCP网络编程实现代码:/***********************************server.c************ ****************************/#include#include#include#include#include#include#include#include#includeexterninterrno;intmain(){   //step1 secket  intfd=socket(AF_INET,SOCK_STREAM,
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top