免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: berryfly
打印 上一主题 下一主题

求救!!:关于UNIX系统UDP编程问题 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2005-10-26 16:33 |只看该作者

求救!!:关于UNIX系统UDP编程问题

呵呵!无话可说。

论坛徽章:
0
22 [报告]
发表于 2005-10-26 16:35 |只看该作者

求救!!:关于UNIX系统UDP编程问题

别呀,明天我把C的编译环境告诉你,看是否有用。非常感谢你为我的事情操心,再次感谢!!!

论坛徽章:
0
23 [报告]
发表于 2005-10-26 16:38 |只看该作者

求救!!:关于UNIX系统UDP编程问题

帮你帮到低吧!我把参数都写死了你去运行看看 梢等...

论坛徽章:
0
24 [报告]
发表于 2005-10-26 16:44 |只看该作者

求救!!:关于UNIX系统UDP编程问题

#include <stdlib.h>;
#include <stdio.h>;
#include <errno.h>;
#include <string.h>;
#include <unistd.h>;
#include <netdb.h>;
#include <sys/socket.h>;
#include <netinet/in.h>;
#include <sys/types.h>;
#include <arpa/inet.h>;
#define MAX_BUF_SIZE    1024


void udpc_requ(int sockfd,const struct sockaddr_in *addr,socklen_t len)
{
      char buffer[MAX_BUF_SIZE];
      int n;
      while(fgets(buffer,MAX_BUF_SIZE,stdin))         
      {        /*   从键盘读入,写到服务端   */
              sendto(sockfd,buffer,strlen(buffer),0,addr,len);
              bzero(buffer,MAX_BUF_SIZE);

              /*   从网络上读,写到屏幕上    */
                              memset(buffer, 0, sizeof(buffer));
              n=recvfrom(sockfd,buffer,MAX_BUF_SIZE, 0, NULL, NULL);
              if(n <= 0)
                              {
                                      fprintf(stderr, "Recv Error %s\n", strerror(errno));
                                      return;
                              }
                              buffer[n]=0;
              fprintf(stderr, "get %s", buffer);
      }
}


int main(int argc,char **argv)
{
      int sockfd,port;
      struct sockaddr_in      addr;
      u_short port;
      char        buf[] = "127.0.0.1";
       port = 8888;
      /*if(argc!=3)
      {
              fprintf(stderr,"Usage:%s server_ip server_port\n",argv[0]);
              exit(1);
      } */
        
         
      sockfd=socket(AF_INET,SOCK_DGRAM,0);
      if(sockfd<0)
      {
              fprintf(stderr,"Socket  Error:%s\n",strerror(errno));
              exit(1);
      }      
      /*      填充服务端的资料      */
      bzero(&addr,sizeof(struct sockaddr_in));
      addr.sin_family=AF_INET;
      addr.sin_port=htons(port);
      if(inet_aton(buf,&addr.sin_addr)<0)
      {
              fprintf(stderr,"Ip error:%s\n",strerror(errno));
              exit(1);
      }
               if(connect(sockfd, (struct sockaddr *)&addr, sizeof(struct sockaddr_in)) == -1)
              {
                      fprintf(stderr, "connect error %s\n", strerror(errno));
                      exit(1);
              }
      udpc_requ(sockfd,&addr,sizeof(struct sockaddr_in));
      close(sockfd);
}

所有的需要输入的参数都是定值 看看结果:

论坛徽章:
0
25 [报告]
发表于 2005-10-26 16:48 |只看该作者

求救!!:关于UNIX系统UDP编程问题

我去试试,明天告诉你结果:)明天你在吧?
我这里是单位集中上网的地方,5点中管理员要关门,只好收工了,哎,没这个该死的东东搞的头都大了。~~~
再次表示感谢,非常好心的大虾:)

论坛徽章:
0
26 [报告]
发表于 2005-10-27 09:07 |只看该作者

求救!!:关于UNIX系统UDP编程问题

早上好!
我试了,还是不行呀!有没有什么方法,可以测试到是server有问题,还是client有问题呢?还是端口堵塞呢?

论坛徽章:
0
27 [报告]
发表于 2005-10-27 09:15 |只看该作者

求救!!:关于UNIX系统UDP编程问题

估计是系统的问题吧!
你把端口改的小一些看看
或这你在 win下或别的系统下启动客户端 连本机的服务器看怎么样?
在本机起客户端在别的系统下起服务器看能不能连接。

论坛徽章:
0
28 [报告]
发表于 2005-10-27 09:20 |只看该作者

求救!!:关于UNIX系统UDP编程问题

我先去试试将端口号改小一点。
另:
或这你在 win下或别的系统下启动客户端 连本机的服务器看怎么样?
在本机起客户端在别的系统下起服务器看能不能连接。
我没太看懂什么意思。
client在WIN系统下能起来吗?vc编译不通过呀,或是将编译好的client在win下面运行,这样行吗?

论坛徽章:
0
29 [报告]
发表于 2005-10-27 09:23 |只看该作者

求救!!:关于UNIX系统UDP编程问题

你就用red hat 9.0去运行.......

论坛徽章:
0
30 [报告]
发表于 2005-10-27 09:31 |只看该作者

求救!!:关于UNIX系统UDP编程问题

将端口改成1500还是不行呀。
我没有red hat 9.0呀。
要不我试试你的程序吧。如果你的程序也不行,那肯定是系统的问题了。对吧
我如何去运行你的程序呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP