TCP-server/client实现字符大写转换
2017-12-08 20:18
246 查看
server
2 client
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <pthread.h> #define MAXLINE 80 #define SERV_PORT 6666 void* thread_routine(void* arg){ char buf[MAXLINE]; int n = 0; int i; int connfd = (int)arg; while(1){ n = read(connfd,buf,MAXLINE); if(n == 0){ break; }else if( strncmp(buf,"exit",4) == 0 ){ break; }else{ for(i = 0 ; i < n ; ++i){ buf[i] = toupper(buf[i]); } write(connfd,buf,n); } } printf("client id: %lu bye\n",pthread_self()); close(connfd); pthread_exit(NULL); } int main(void) { struct sockaddr_in servaddr, cliaddr; socklen_t cliaddr_len; int listenfd, connfd; char str[INET_ADDRSTRLEN]; int i, n; pthread_t thread_id; 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(SERV_PORT); bind(listenfd, (struct sockaddr *)&servaddr, sizeof(servaddr)); listen(listenfd, 20); while (1) { printf("Accepting connections ...\n"); cliaddr_len = sizeof(cliaddr); connfd = accept(listenfd, (struct sockaddr *)&cliaddr, &cliaddr_len); //n = read(connfd, buf, MAXLINE); printf("received from %s at PORT %d\n", inet_ntop(AF_INET, &cliaddr.sin_addr, str, sizeof(str)), ntohs(cliaddr.sin_port)); if( 0 != pthread_create(&thread_id,NULL,thread_routine,(void*)connfd)){ exit(1); } pthread_detach(thread_id); } close(listenfd); return 0; }
2 client
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <netinet/in.h> #define MAXLINE 100 #define SERV_PORT 6666 int main(int argc, char *argv[]) { struct sockaddr_in servaddr; char buf[MAXLINE]; int sockfd, n; char sendbuf[MAXLINE]; sockfd = socket(AF_INET, SOCK_STREAM, 0); bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; inet_pton(AF_INET, "127.0.0.1", &servaddr.sin_addr); servaddr.sin_port = htons(SERV_PORT); connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)); while(1){ write(STDOUT_FILENO,"send toserver:",strlen("send toserver:")); n = read(STDIN_FILENO,sendbuf,MAXLINE); if(n == 0){ printf("read error\n"); } write(sockfd, sendbuf, n); if(0 == strncmp(sendbuf,"exit",4)){ break; } n = read(sockfd, buf, MAXLINE); write(STDOUT_FILENO,"Response from server:",strlen("Response from server:")); write(STDOUT_FILENO, buf, n); } close(sockfd); printf("bye\n"); return 0; }
相关文章推荐
- python实现可将字符转换成大写的tcp服务器实例
- PHP中实现数字金额到中文大写字符的转换
- TCP套接字(server/client实现)
- php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
- 使用java实现Server和Client(TCP)
- 使用java实现Server和Client(TCP)
- UDP-server/client实现字符大写转换
- TCP服务器,实现client发送消息,server接收消息
- Python Socket实现简单TCP Server/client功能示例
- TCPserver Tcpclient 怎么实现聊天室一起聊天的功能呢?
- Java中实现数字金额到中文大写字符的转换!!
- Java中实现数字金额到中文大写字符的转换!! 选择自 netfalcon 的 Blog
- Java中实现数字金额到中文大写字符的转换!!
- php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
- TCP/UDP client/server library for Java, 最好的java语言tcp udp 服务器客户端实现库
- 使用java实现Server和Client(TCP)
- TCP的Server和Client通信—Java实现
- PHP中实现数字金额到中文大写字符的转换
- HTML5 WebSocket(Client) + JavaWeb(Server) 实现简单的聊天室功能
- Tcp实现简单的大小写转换功能