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