欢迎来到天天文库
浏览记录
ID:8804556
大小:45.86 KB
页数:14页
时间:2018-04-08
《linux网络编程:用c语言实现的聊天程序(同步通信)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Linux网络编程:用C语言实现的聊天程序(同步通信)通过TCP协议,用C语言实现的同步聊天程序,注释写的比较详细,个人觉得对字符串处理比较充分,能够正常编译运行,拿出来和大家分享一下!1、客户端源代码:[cpp]viewplaincopyprint?1.#include 2.#include 3.#include 4.#include 5.#include 6.#includ
2、e 7.#include 8.#include 9.#include 10. 11.#define BUFLEN 10 12. 13.int main(int argc, char **argv) 14.{ 15. int sockfd; 16. struct sockaddr_in s_addr; 17. socklen_t len; 18.
3、unsigned int port; 19. char buf[BUFLEN]; 20. 21. /*建立socket*/ 22. if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1){ 23. perror("socket"); 24. exit(errno); 25. }else 26. printf("socket create success!
4、"); 27. 28. /*设置服务器端口*/ 29. if(argv[2]) 30. port = atoi(argv[2]); 31. else 32. port = 4567; 33. /*设置服务器ip*/ 34. bzero(&s_addr, sizeof(s_addr)); 35. s_addr.sin_family = AF_INET; 36. s_addr.sin_port = ht
5、ons(port); 37. if (inet_aton(argv[1], (struct in_addr *)&s_addr.sin_addr.s_addr) == 0) { 1. perror(argv[1]); 2. exit(errno); 3. } 4. /*开始连接服务器*/ 5. if(connect(sockfd,(struct sockaddr*)&s_addr,sizeof(struct sockaddr))
6、 == -1){ 6. perror("connect"); 7. exit(errno); 8. }else 9. printf("conncet success!"); 10. 11. while(1){ 12. /******接收消息*******/ 13. bzero(buf,BUFLEN); 14. len = recv(sockfd,buf,BUFLEN,0);
7、 15. if(len > 0) 16. printf("服务器发来的消息是:%s,共有字节数是: %d",buf,len); 17. else{ 18. if(len < 0 ) 19. printf("接受消息失败!"); 20. else 21. printf("服务器退出了,聊天终止!"); 22.
8、 break; 23. } 24. _retry: 25. /******发送消息*******/ 26. bzero(buf,BUFLEN); 27. printf("请输入发送给对方的消息:"); 28. /*fgets函数:从流中读取BUFLEN-1个字符*/ 29. fgets(buf,BUFLEN,stdin); 30.
此文档下载收益归作者所有