C-socket编程-客户端服务端通信模型

    xiaoxiao2021-03-25  58

    服务端代码

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <sys/socket.h> #include <netinet/in.h> int main() { //创建套接字 int serv_sock = socket(AF_INET,SOCK_STREAM,0); //将套接字与IP,PORT绑定 //创建sokaddr_in结构体,并经行本地字节序和网络字节序的转换 struct sockaddr_in serv_addr; memset(&serv_addr,0,sizeof(serv_addr)); serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr=inet_addr("127.0.0.1"); serv_addr.sin_port = htons(1234); bind(serv_sock,(struct sockaddr*)&serv_addr,sizeof(serv_addr)); //进入监听状态,等待用户发起请求 listen(serv_sock,20); //接收客户端请求 struct sockaddr_in clnt_addr; socklen_t clnt_addr_size =sizeof(clnt_addr); int clnt_sock=accept(serv_sock,(struct sockaddr *)&clnt_addr,&clnt_addr_size); char buf[4096]; int n,i; while(1) { n=read(clnt_sock,buf,sizeof(buf)); for(i=0;i<n;i++) { buf[i]=toupper(buf[i]); } write(clnt_sock,buf,n); } //关闭套接字 close(clnt_sock); close(serv_sock); return 0; }

    客户端代码

    #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <arpa/inet.h> #include <sys/socket.h> int main(){ //创建套接字 int sock = socket(AF_INET, SOCK_STREAM, 0); //向服务器(特定的IP和端口)发起请求 struct sockaddr_in serv_addr; memset(&serv_addr, 0, sizeof(serv_addr)); //每个字节都用0填充 serv_addr.sin_family = AF_INET; //使用IPv4地址 serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); //具体的IP地址 serv_addr.sin_port = htons(1234); //端口 connect(sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr)); char buf[4096]; int n; while(1) { fgets(buf,sizeof(buf),stdin); write(sock,buf,strlen(buf)); n=read(sock,buf,sizeof(buf)); printf("Message form server: %s\n", buf); } //关闭套接字 close(sock); return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-40697.html

    最新回复(0)