linux 编程 socket网络编程

tech2026-08-08  1

客户端

#include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <sys/socket.h> #include <arpa/inet.h> #include <string.h> #include <ctype.h> #define SERV_PORT 6666 #define SERV_IP "127.0.0.1" int main(void) { int cfd; struct sockaddr_in serv_addr,clie_addr; char buf[BUFSIZ]; int rn; socklen_t serv_addr_len; cfd =socket(AF_INET,SOCK_STREAM,0); memset(&serv_addr,0,sizeof(serv_addr)); serv_addr.sin_family =AF_INET; serv_addr.sin_port =htons(SERV_PORT); inet_pton(AF_INET,SERV_IP,&serv_addr.sin_addr.s_addr); connect(cfd,(struct sockaddr*)&serv_addr,sizeof(serv_addr)); write(STDOUT_FILENO,"ok",2); while(1) { fgets(buf,sizeof(buf),stdin); write(cfd,buf,strlen(buf)); rn=read(cfd,buf,sizeof(buf)); write(STDOUT_FILENO,buf,rn); } close(cfd); return 0; }

服务器

#include <stdio.h> #include <unistd.h> #include <sys/socket.h> #include <stdlib.h> #include <ctype.h> #include <arpa/inet.h> #include <ctype.h> #define SERV_IP "127.0.0.1" #define SERV_PORT 6666 int main(void) { int lfd,cfd; struct sockaddr_in serv_addr ,clie_addr; socklen_t clie_addr_len; char buf[BUFSIZ],clie_IP[BUFSIZ]; int n,i; serv_addr.sin_family =AF_INET; serv_addr.sin_port =htons(SERV_PORT); serv_addr.sin_addr.s_addr= htonl(INADDR_ANY); lfd=socket(AF_INET,SOCK_STREAM,0); bind(lfd,(struct sockaddr *)&serv_addr,sizeof(serv_addr)); listen(lfd,128); cfd=accept(lfd,(struct sockaddr *)&clie_addr,&clie_addr_len);//zuse printf("client IP:%s client port%d\n", inet_ntop(AF_INET,&clie_addr.sin_addr.s_addr,clie_IP,sizeof(clie_IP)), ntohs(clie_addr.sin_port)); while(1) { n=read(cfd,buf,sizeof(buf)); //convert for(i=0;i<n;i++) { buf[i]=toupper(buf[i]); } write(cfd,buf,n); } close(lfd); close(cfd); return 0; }
最新回复(0)