マルチプロセスは情報群送信機能にTCPを利用

/サーバーの代コード
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include < string.h>
#include <stdio.h>
#include <stdlib.h>

#define SEVER_IP "192.168.11.224"
#define PORT_NUM 1111
typedef struct sockaddr SA;
typedef 構造体 sockaddr_in SIN; 


int main(int argc,char *argv[])
{     int sockfd;     SIN seraddr = {0};     int ret、ret1、ret2;     int res、res1、res2;     int 再利用 = 1;     int clifd1,clifd2;      bzero(&seraddr,sizeof(SIN));     seraddr.sin_family = AF_INET;









    seraddr.sin_port = htons(PORT_NUM);
    seraddr.sin_addr.s_addr = inet_addr(SEVER_IP);
    sockfd = ソケット(AF_INET,SOCK_STREAM,0);
    if(sockfd == -1)
    {         printf("socketfd エラー\r\n");         終了(0);     printf     ("sockfd = %d\r\n",sockfd);     setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,&reuse,sizeof(reuse));     ret=bind(sockfd,(SA *)&seraddr,sizeof(SA));     if(ret == -1)     {         printf("失敗しました\r\n");         終了(0);     printf     ("ret = %d\r\n",ret);     ret1 = listen(sockfd,5);     if(ret1 == 0)     {




    












clifd2); if(clifd1 == -1) { perror("受け入れ失敗\r\n"); 終了(0); if(clifd2 == -1) { perror("受け入れ失敗\ r\n"); 終了(0); res     = フォーク();     while(1)     {         if(res == 0)         {              while(1)             {




























                char r_buf[20] = {0};
                recv(clifd1,r_buf,sizeof(r_buf),0);
                send(clifd2,r_buf,sizeof(r_buf),0);
            }  

        }
        else
        {             while(1)             {                 char t_buf[20] = {0};                 recv(clifd2,t_buf,sizeof(t_buf),0);                 send(clifd1,t_buf,sizeof(t_buf),0);             閉じる         (     sockfd     );     閉じる(clifd1);     閉じる(clifd2);     0を返します。=============================================== / / /客端の代価#include <sys/types.h>










        








    





#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>


#define SEVER_IP "192.168.11.224"
#define PORT_NUM 1111
typedef struct sockaddr SA;
typedef 構造体 sockaddr_in SIN; 


int main(int argc,char *argv[])
{     int serfd;     int clidfd;     SIN seraddr = {0};     int ret、ret1、ret2;     int rec_len = 0;     bzero(&seraddr,sizeof(SIN));     serfd = ソケット(AF_INET,SOCK_STREAM, 0);     if(serfd == -1)     {         perror("ソケットが失敗しました\r\n");




    






        終了(0);
    printf
    ("%d\r\n",serfd);
    bzero(&seraddr,sizeof(SIN));
    seraddr.sin_family = AF_INET;
    seraddr.sin_port = htons(PORT_NUM);
    seraddr.sin_addr.s_addr = inet_addr(SEVER_IP);
    serfd = ソケット(AF_INET,SOCK_STREAM,0);
    ret = connect(serfd,(SA *)&seraddr,sizeof(SA));
    if(ret == -1)
    {         perror("接続に失敗しました\r\n");     終了(0);     printf     ("接続成功\r\n");     整数の解像度。     レス = フォーク();     if(res == 0)     {         char t_buf[20] = {0};         while(1)         {





    
    







            scanf("%s",t_buf);
            send(serfd,t_buf,sizeof(t_buf),0);
        }
    }
    else
    {         char r_buf[20] = {0};         while(1)         {             recv(serfd,r_buf,sizeof(r_buf),0);             printf("A:%s\r\n",r_buf);         閉じる     (     serfd);         0を返します。}













 

おすすめ

転載: blog.csdn.net/weixin_41114301/article/details/132190757