Linux网络编程用C语言实现的聊天程序(同步通信).docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《Linux网络编程用C语言实现的聊天程序(同步通信).docx》由会员分享,可在线阅读,更多相关《Linux网络编程用C语言实现的聊天程序(同步通信).docx(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Linux网络编程:用C语言实现的聊天程序(同步通信)通过TCP协议,用C语言实现的同步聊天程序,注释写的比较详细,个人觉得对字符串处理比较充分,能够正常编译运行,拿出来和大家分享一下!1、客户端源代码:cpp view plaincopyprint?1. #include 2. #include 3. #include 4. #include 5. #include 6. #include 7. #include 8. #include 9. #include 10. 11. #defineBUFLEN10 12. 13. intmain(intargc,char*argv)14. 15.
2、intsockfd;16. structsockaddr_ins_addr;17. socklen_tlen;18. unsignedintport;19. charbufBUFLEN;20. 21. /*建立socket*/22. if(sockfd=socket(AF_INET,SOCK_STREAM,0)=-1)23. perror(socket);24. exit(errno);25. else26. printf(socketcreatesuccess!n);27. 28. /*设置服务器端口*/29. if(argv2)30. port=atoi(argv2);31. else32
3、. port=4567;33. /*设置服务器ip*/34. bzero(&s_addr,sizeof(s_addr);35. s_addr.sin_family=AF_INET;36. s_addr.sin_port=htons(port);37. if(inet_aton(argv1,(structin_addr*)&s_addr.sin_addr.s_addr)=0)38. perror(argv1);39. exit(errno);40. 41. /*开始连接服务器*/42. if(connect(sockfd,(structsockaddr*)&s_addr,sizeof(struc
4、tsockaddr)=-1)43. perror(connect);44. exit(errno);45. else46. printf(conncetsuccess!n);47. 48. while(1)49. /*接收消息*/50. bzero(buf,BUFLEN);51. len=recv(sockfd,buf,BUFLEN,0);52. if(len0)53. printf(服务器发来的消息是:%s,共有字节数是:%dn,buf,len);54. else55. if(len0)85. printf(消息发送成功,本次共发送的字节数是:%dn,len);86. else87. pri
5、ntf(消息发送失败!n);88. break;89. 90. 91. /*关闭连接*/92. close(sockfd);93. 94. return0;95. #include #include #include #include #include #include #include #include #include #define BUFLEN 10int main(int argc, char *argv) int sockfd; struct sockaddr_in s_addr; socklen_t len; unsigned int port; char bufBUFLEN;
6、/*建立socket*/ if(sockfd = socket(AF_INET, SOCK_STREAM, 0) = -1) perror(socket); exit(errno); else printf(socket create success!n); /*设置服务器端口*/ if(argv2) port = atoi(argv2); else port = 4567; /*设置服务器ip*/ bzero(&s_addr, sizeof(s_addr); s_addr.sin_family = AF_INET; s_addr.sin_port = htons(port); if (ine
7、t_aton(argv1, (struct in_addr *)&s_addr.sin_addr.s_addr) = 0) perror(argv1); exit(errno); /*开始连接服务器*/ if(connect(sockfd,(struct sockaddr*)&s_addr,sizeof(struct sockaddr) = -1) perror(connect); exit(errno); else printf(conncet success!n); while(1) /*接收消息*/ bzero(buf,BUFLEN); len = recv(sockfd,buf,BUF
8、LEN,0); if(len 0) printf(服务器发来的消息是:%s,共有字节数是: %dn,buf,len); else if(len 0) printf(消息发送成功,本次共发送的字节数是:%dn,len); else printf(消息发送失败!n); break; /*关闭连接*/ close(sockfd); return 0;2、服务器源代码:cpp view plaincopyprint?1. #include 2. #include 3. #include 4. #include 5. #include 6. #include 7. #include 8. #includ
9、e 9. #include 10. 11. #defineBUFLEN10 12. 13. intmain(intargc,char*argv)14. 15. intsockfd,newfd;16. structsockaddr_ins_addr,c_addr;17. charbufBUFLEN;18. socklen_tlen;19. unsignedintport,listnum;20. 21. /*建立socket*/22. if(sockfd=socket(AF_INET,SOCK_STREAM,0)=-1)23. perror(socket);24. exit(errno);25.
10、else26. printf(socketcreatesuccess!n);27. /*设置服务器端口*/28. if(argv2)29. port=atoi(argv2);30. else31. port=4567;32. /*设置侦听队列长度*/33. if(argv3)34. listnum=atoi(argv3);35. else36. listnum=3;37. /*设置服务器ip*/38. bzero(&s_addr,sizeof(s_addr);39. s_addr.sin_family=AF_INET;40. s_addr.sin_port=htons(port);41. if
11、(argv1)42. s_addr.sin_addr.s_addr=inet_addr(argv1);43. else44. s_addr.sin_addr.s_addr=INADDR_ANY;45. /*把地址和端口帮定到套接字上*/46. if(bind(sockfd,(structsockaddr*)&s_addr,sizeof(structsockaddr)=-1)47. perror(bind);48. exit(errno);49. else50. printf(bindsuccess!n);51. /*侦听本地端口*/52. if(listen(sockfd,listnum)=-
12、1)53. perror(listen);54. exit(errno);55. else56. printf(theserverislistening!n);57. while(1)58. printf(*聊天开始*n);59. len=sizeof(structsockaddr);60. if(newfd=accept(sockfd,(structsockaddr*)&c_addr,&len)=-1)61. perror(accept);62. exit(errno);63. else64. printf(正在与您聊天的客户端是:%s:%dn,inet_ntoa(c_addr.sin_ad
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 网络 编程 语言 实现 聊天 程序 同步 通信
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内