linux socket编程

linux socket编程

ID:41032392

大小:38.50 KB

页数:9页

时间:2019-08-14

linux socket编程_第1页
linux socket编程_第2页
linux socket编程_第3页
linux socket编程_第4页
linux socket编程_第5页
资源描述:

《linux socket编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、最近看了一些网络编程的书籍,一直以来总感觉网络编程神秘莫测,其实网络编程入门还是很容易学的,下面这些代码是我在linux下编写的,已经运行过了,编译之后就可以运行了。有不足之处希望大家多多指出,共同学习交流。  TCP协议:  服务器端:tcp_server.c  #include  #include  #include  #include  #include  intmain(intargc,char*argv[])  {  ints;  intfd; 

2、 intlen;  structsockaddr_inmy_addr;  //服务器网络地址结构体  structsockaddr_inremote_addr;//客户端网络地址结构体  intsin_size;  charbuf[BUFSIZ];//数据传送的缓冲区  memset(&my_addr,0,sizeof(my_addr));//数据初始化--清零  my_addr.sin_family=AF_INET;//设置为IP通信  my_addr.sin_addr.s_addr=INADDR_ANY;//服务器IP地址--允许连接到所有本地地址上  my_addr.sin

3、_port=htons(8000);//服务器端口号  /*创建服务器端套接字--IPv4协议,面向连接通信,TCP协议*/  if((s=socket(PF_INET,SOCK_STREAM,0))<0)  {  perror("socket");  return1;  }  /*将套接字绑定到服务器的网络地址上*/  if(bind(s,(structsockaddr*)&my_addr,sizeof(structsockaddr))<0)  {  perror("bind");  return1;  }  /*监听连接请求--监听队列长度为5*/  listen(s,5);

4、  sin_size=sizeof(structsockaddr_in);  /*等待客户端连接请求到达*/  if((fd=accept(s,(structsockaddr*)&remote_addr,&sin_size))<0)  {  perror("accept");  return1;  }  printf("acceptclient%s",inet_ntoa(remote_addr.sin_addr));  len=send(fd,"Welcometomyserver",21,0);//发送欢迎信息  /*接收客户端的数据并将其发送给客户端--recv返回接收

5、到的字节数,sand返回发送的字节数*/  while((len=recv(fd,buf,BUFSIZ,0))>0))  {  buf[len]='';  printf("%s",buf);  if(send(fd,buf,len,0)<0)  {  perror("write");  return1;  }  }  close(fd);  close(s);  return0;  }  客户端:tcp_client.c  #include  #include  #include  #include<

6、netinet/in.h>  #include  intmain(intargc,char*argv[])  {  ints;  intlen;  structsockaddr_inremote_addr;//客户端网络地址结构体  charbuf[BUFSIZ];//数据传送的缓冲区  memset(&remote_addr,0,sizeof(remote_addr));//数据初始化--清零  remote_addr.sin_family=AF_INET;//设置为IP通信  remote_addr.sin_addr.s_addr=inet_addr

7、("127.0.0.1");//服务器IP地址  remote_addr.sin_port=htons(8000);//服务器端口号  /*创建客户端套接字--IPv4协议,面向连接通信,TCP协议*/  if((s=socket(PF_INET,SOCK_STREAM,0))<0)  {  perror("socket");  return1;  }  /*将套接字绑定到服务器的网络地址上*/  if(connect(s,(structsockaddr*)&remote_add

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。