试了几个例子,c和java的代码都没问题,但是就是connect refused,哪位大虾 来指点一下.
如果能给个例子就更好了.
不胜感激~~~~~~~~

解决方案 »

  1.   

    //connect refused
    可能是ip或端口问题, 你可以把代码贴出来看看
      

  2.   

    代码是这样的,因为是在linux下的
    c部分:
    main()
    {
      int skfd;
      char buf[128];
      int len;
      struct sockaddr_in kpeer;
      memset(&kpeer, 0, sizeof(kpeer));
      kpeer.sin_family = AF_INET;
      kpeer.sin_addr.s_addr=INADDR_ANY;
      kpeer.sin_port=8848;
      
      skfd=socket(PF_INET,SOCK_DGRAM,0);
      if(skfd<0)
    {
    printf("socket create failed\n");
    exit(1);
    }
    if(bind(skfd,(struct sockaddr *)&kpeer,sizeof(kpeer))<0)
    printf("1\n");
    while(1)
    {
    len=sizeof(kpeer);
    if(recvfrom(skfd,buf,sizeof(buf),0,(struct sockaddr *)&kpeer,&len)<0)
    printf("2\n");
    else
    printf("%s\n",buf);
    }
    }java 部分:
    import java.io.*;
    import java.net.*;class Sender2
    {
    public static void main (String [] args)
    {
    String host = "192.168.1.100";if (args.length == 1)
    host = args [0];DatagramSocket s = null;try
    {
    s = new DatagramSocket ();byte [] buffer;
    buffer = new String ("Send me a datagram").getBytes ();
    InetAddress ia = InetAddress.getByName (host);DatagramPacket dgp = new DatagramPacket (buffer,buffer.length,ia,8848);}
    catch (IOException e)
    {
    System.out.println (e.toString ());
    }
    finally
    {
    if (s != null)
    s.close ();
    }
    }

      

  3.   

    java 里少写了一句,在DatagramPacket dgp = new DatagramPacket (buffer,buffer.length,ia,8848);下面还有一句
    s.send (dgp);
    不知道哪儿有问题~~~~~~
      

  4.   

    java端没问题, c端有个小问题,你试试kpeer.sin_port=htons(8848);