2、UDP服务器中,使用connect函数,实现唯一的客户端与服务器通话。
创始人
2024-09-25 09:24:56
0

UDPserver.c

#include


#define SERPORT 6660
#define SERIP "192.168.0.116"
int main(int argc, const char *argv[])
{
    //1、创建套接字
    int oldfd = socket(AF_INET,SOCK_DGRAM,0);//para1:ipv4,para2:udp

    if(oldfd == -1)
    {
    
        perror("socket");
        return -1;
    
    }
    struct sockaddr_in sin = {
        .sin_family = AF_INET,
        .sin_port = htons(SERPORT),
        .sin_addr.s_addr =inet_addr(SERIP),
    
    
    
    };
    //2、绑定
    if(bind(oldfd,(struct sockaddr *)&sin,sizeof(sin))==-1)
    {
        perror("绑定失败");
        return -1;
    
    }
    printf("绑定success");
    struct sockaddr_in cin;
    socklen_t cinlen = sizeof(cin);

    //3、收发消息
    char buff[100];
    while(1)
    {
        memset(buff,0,sizeof(buff));
        int len =recvfrom(oldfd,buff,sizeof(buff),0,(struct sockaddr *)&cin,&cinlen);//不用管谁发的
        //buff[len-1]='\0';
        if(strcmp(buff,"mode")==0)
        {
            connect(oldfd,(struct sockaddr *)&cin,cinlen);
            printf("服务器只能与一个客户端通信");    
        
        }
        if(len==0)
        {
        
            perror("客户端跑了");
            break;    
        }
        
        printf("服务器接收到信息%s\n",buff);
    //    printf("服务器发消息:");
    //    fgets(buff,sizeof(buff),stdin);

    //    strcat(buff,"666");
    //    sendto(oldfd,buff,sizeof(buff),0,(struct sockaddr*)&cin,cinlen);
    //    printf("发送成功\n");
    
    
    
    
    
    }
    close(oldfd);

    return 0;
}
 

UDPclient

#include


#define SEVIP "192.168.0.116"
#define SEVPORT 6660
typedef struct sockaddr_in socketaddr;
int main(int argc, const char *argv[])
{
    int oldfd=socket(AF_INET,SOCK_DGRAM,0);
    if(oldfd == -1)
    {
        perror("socket");
        return -1;
    }

    in_addr_t port_t = htons(SEVPORT);
    in_addr_t ip_t = inet_addr(SEVIP);


    socketaddr cln = {
        .sin_family = AF_INET,
        .sin_port = port_t,
        .sin_addr.s_addr = ip_t     };


    int clnlen = sizeof(cln);
    
    
    char buff[1024]="";
    while(1)
    {

    
        printf("客户端发送给服务端:");
        fgets(buff,sizeof(buff),stdin);
            buff[strlen(buff)-1]='\0';

        sendto(oldfd,buff,sizeof(buff),0,(struct sockaddr*)&cln,clnlen);
    
    }


    return 0;
}
 

相关内容

热门资讯

wepoke ai辅助(透视)... wepoke ai辅助(透视)wepoke辅助(详细辅助揭秘教程)原来存在有挂(了解计算辅助)一、w...
第八分钟普及!大唐抓麻雀辅助&... 第八分钟普及!大唐抓麻雀辅助"详细辅助高科技教程"(真是有挂)1、完成大唐抓麻雀辅助的残局,帮助玩家...
wepoke插件(透视)wep... wepoke插件(透视)wepoke真的(详细辅助AI教程)真是有挂(黑科技辅助挂);1、超多福利:...
9分钟普及!潮汕汇挂"... 9分钟普及!潮汕汇挂"详细辅助切实教程"(原来是真的有挂)1、完成潮汕汇挂透视辅助安装,帮助玩家取得...
wepoke确实有挂(透视)W... wepoke确实有挂(透视)We辅poker助(详细辅助解密教程)确实是真的有挂(可靠计算辅助)1、...
5分钟普及!卡丁互娱辅助器&q... 5分钟普及!卡丁互娱辅助器"详细辅助玩家教程"(切实存在有挂)卡丁互娱辅助器辅助器中分为三种模型:卡...
wepoke辅助挂(透视)we... wepoke辅助挂(透视)wepoke靠谱吗(详细辅助解密教程)竟然存在有挂(黑科技插件)1、wep...
三分钟普及!微信十三张脚本&q... 三分钟普及!微信十三张脚本"详细辅助解密教程"(原来是真的有挂)运微信十三张脚本辅助工具,进入游戏界...
第2分钟普及!桂林八一字牌辅助... 第2分钟普及!桂林八一字牌辅助"详细辅助揭秘攻略"(总是是有挂);在进入桂林八一字牌辅助辅助挂后,参...
WePoKe透视挂(透视)we... WePoKe透视挂(透视)wepoke好友助力(详细辅助安装教程)切实是有挂(科普辅助技巧)1、让任...