开发者社区> 问答> 正文

udp服务程序无法运行

在阿里云上系统cenos 测试程序(UDP通讯),在阿里云就不可以(在本地两个机器上都可以运行),不知道为什么,安全组也设置了UDP端口。

/*
* File:   main.c
* Author: tianshuai
*
* Created on 2011年11月29日, 下午10:34
*/


#include <stdio.h>
#include <stdlib.h>


#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>


int port=6789;


int main(int argc, char** argv) {


    int sin_len;
    char message[256];


    int socket_descriptor;
    struct sockaddr_in sin;
    printf("Waiting for data form sender \n");


    bzero(&sin,sizeof(sin));
    sin.sin_family=AF_INET;
    sin.sin_addr.s_addr=htonl(INADDR_ANY);
    sin.sin_port=htons(port);
    sin_len=sizeof(sin);
    
    printf("%d\n",INADDR_ANY);
  
    socket_descriptor=socket(AF_INET,SOCK_DGRAM,0);
    bind(socket_descriptor,(struct sockaddr *)&sin,sizeof(sin));


    while(1)
    {
        recvfrom(socket_descriptor,message,sizeof(message),0,(struct sockaddr *)&sin,&sin_len);
        printf("Response from server:%s\n",message);
        if(strncmp(message,"stop",4) == 0)//接受到的消息为 “stop”
        {


            printf("Sender has told me to end the connection\n");
            break;
        }
    }


    close(socket_descriptor);
    exit(0);


    return (EXIT_SUCCESS);
}
上面是服务器程序,本地是sockettools

展开
收起
smartmos 2017-09-12 21:46:23 2586 0
1 条回答
写回答
取消 提交回答
  • 乐善好施
    先确定两台主机内网是否互通
    2017-09-13 08:10:16
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载