Linux下的C语言编程——简单实现tcp客户端和服务器
来源:互联网 发布:中老年品位 知乎 编辑:程序博客网 时间:2024/06/05 09:41
以下程序均未做错误处理,等有时间一定完善
客户端
#include <stdio.h>#include <sys/socket.h>#include <stdlib.h>#include <netinet/in.h>#include <string.h>int main(int argc,char **argv){int sockfd;int n;struct sockaddr_in servaddr,cliaddr;char sendbuf[1000];char recvbuf[1000];if(argc != 2){printf("usage:client <ip address>\n");exit(-1);}sockfd = socket(AF_INET,SOCK_STREAM,0);bzero(&servaddr,sizeof(servaddr));servaddr.sin_family = AF_INET;servaddr.sin_addr.s_addr = inet_addr(argv[1]);servaddr.sin_port = htons(3200);connect(sockfd,(struct sockaddr*)&servaddr,sizeof(servaddr));while(fgets(sendbuf,1000,stdin) != NULL){sendto(sockfd,sendbuf,strlen(sendbuf),0,(struct sockaddr *)&servaddr,sizeof(servaddr));n = recvfrom(sockfd,recvbuf,1000,0,NULL,NULL);//(struct sockaddr*)&cliaddr,recvbuf[n] = '\0';fputs(recvbuf,stdout);}close(sockfd); return 0;}
服务器
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <netinet/in.h>#include <sys/socket.h>void strlwr(char *str){char *p;p = str;while(*p != '\0'){if((*p >= 'a') && (*p <= 'z')){*p -= 32;}p++;}}int main(){pid_t pid;int listenfd,connfd;int n;struct sockaddr_in servaddr,cliaddr;socklen_t clilen;char mesg[1000];listenfd = socket(AF_INET,SOCK_STREAM,0);bzero(&servaddr,sizeof(servaddr));servaddr.sin_family = AF_INET;servaddr.sin_addr.s_addr = htonl(INADDR_ANY);servaddr.sin_port = htons(3200);int opt = 1;setsockopt(listenfd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt));bind(listenfd,(struct sockaddr *)&servaddr,sizeof(servaddr));listen(listenfd,1024);for(;;){clilen = sizeof(cliaddr);connfd = accept(listenfd,(struct sockaddr*)&cliaddr,&clilen);if((pid = fork()) == 0){close(listenfd);for(;;){n = recvfrom(connfd,mesg,1000,0,(struct sockaddr*)&cliaddr,&clilen);if(n == 0){printf("client closed!\n");exit(-1);}printf("********************\n");mesg[n] = '\0';printf("%s\n",mesg);printf("*********************\n");strlwr(mesg);sendto(connfd,mesg,n,0,(struct sockaddr *)&cliaddr,sizeof(cliaddr));}close(connfd);}}close(listenfd); return 0;}
0 0
- Linux下的C语言编程——简单实现tcp客户端和服务器
- linux下C语言编程日志(1):基于TCP协议的服务器/客户端程序
- C语言学习之Linux下TCP服务器与客户端的实现
- 【C语言】linux下c语言 客户端服务器编程框架
- Python——简单的TCP & UDP 服务器 和 相应的客户端编程
- 简单的TCP协议 socket编程(C语言版服务器和客户端)
- 简单的TCP协议 socket编程(C语言版服务器和客户端)
- Linux下的C语言编程——双向循环链表的简单实现
- LINUX下如何创建TCP客户端和服务器,实现通信
- Linux 网络编程实现TCP协议下的服务器客户端通信
- 用C语言实现的简单TCP客户端
- erlang tcp服务器和客户端的简单实现
- python3实现TCP协议的简单服务器和客户端
- python3实现TCP协议的简单服务器和客户端
- windows下简单的C语言服务器(TCP)
- linux网络编程之用socket实现简单客户端和服务端的通信(基于TCP)
- WinSock2简单的服务器与客户端(C语言实现)
- TCP服务器、客户端的简单实现
- 程序员可以的8种境界
- muduo的Channel类剖析
- android4.4沉浸式状态栏总结
- 欢迎使用CSDN-markdown编辑器
- 进程创建关于fork()浅解
- Linux下的C语言编程——简单实现tcp客户端和服务器
- 理解线程3 c语言示例线程基本操作
- C语言编译的各个阶段
- 3. Longest Substring Without Repeating Characters
- Oracle进阶一
- 【考研数学】——高数
- mysql在线将基于日志的复制和基于事务的复制互换
- Pthread使用总结
- 判断一个字符串是否是另一个字符串的左旋,如果是输出左旋的次数