网络编程-JAVA udp协议 服务器端无法接受数据

问题描述

JAVA udp协议 服务器端无法接受数据

我用UDP协议,写了客服端和服务器端的demo,可是服务器端一直无法receive DatagramPacket。
我在防火墙和360等杀毒软件都关的情况下,任然无法解决。
服务器代码:

```public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub

    DatagramSocket ds = new DatagramSocket(10086);

    byte[] buf = new byte[1024];
    DatagramPacket dp = new DatagramPacket(buf, 1024);

    ds.receive(dp); 

     byte[] data = dp.getData();
     int length =dp.getLength();

     String receiveddata= new String(data, 0, length);
     System.out.println("UdpServerDemo.main()"+receiveddata);

     ds.close();

}
客户端代码:

public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub

    DatagramSocket dS = new DatagramSocket() ;

    String string = "你好";
    byte[] buf =string.getBytes();
    int length = buf.length;

    InetAddress address = InetAddress.getLocalHost();
    int port= 10086;

    DatagramPacket p = new DatagramPacket(buf, length, address, port);

    dS.send(p);
    dS.close();

}

}


解决方案

http://blog.csdn.net/awj3584/article/details/24714515

解决方案二:

服务端有没有收到消息,是否正确侦听端口了。用抓包工具看看客户端发送的数据包

解决方案三:

可以啊

时间: 2024-09-19 02:54:08

网络编程-JAVA udp协议 服务器端无法接受数据的相关文章

网络编程中的协议问题

问题描述 网络编程中的协议问题 qq登录前的两种不同协议设置(TCP/IP和UDP)对qq的登陆有什么影响?

大数据-一个程序中,TCP协议用的muduo网络库,UDP协议可以用boos.asio吗?

问题描述 一个程序中,TCP协议用的muduo网络库,UDP协议可以用boos.asio吗? 通过TCP协议接收数据,解析好,在用UDP协议转发. UDP转发是后面增加的,muduo网路库不支持Udp协议,自己用socket api写,担心大数据,多并发的时候不可靠.请问大神有什么建议? 解决方案 这个当然可以,只要协议格式客户端,服务端之间处理好. 解决方案二: udp确实不可靠,要解决可以自己实现一套超时和重发机制,比如说每个数据包打上标号,发送方和接收方处理好重发,如果对数据质量要求高的话

UNIX网络编程:UDP缺乏流量控制(改进版)

现在我们查看无任何流量控制的UDP对数据报传输的影响.首先我们把dg_cli函数修改为发送固定数目的数据报,并不再从标准输入读.如下,它写2000个1400字节大小的UDP数据报给服务器. 客户端程序cli.c: #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #inc

java网络编程-Java写了个简单的网络编程程序,运行没有结果,求解谢谢!

问题描述 Java写了个简单的网络编程程序,运行没有结果,求解谢谢! import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintStream; import java.io.PrintWriter; import ja

UNIX网络编程:UDP 中的外出接口的确定

已连接UDP套接字还可用来确定用于特定目的地的外出接口.这是由connect函数应用到UDP套接字时的一个副作用造成的:内核选择本地IP地址.这个本地IP地址通过为目的IP地址搜索路由表得到外出接口,然后选用该接口的主IP地址而选定. 注意:getsockname函数调用的位置. #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h>

java网络编程-Java网络编程中不可以使用缓存吗??

问题描述 Java网络编程中不可以使用缓存吗?? 我使用缓存总是什么都不显示,但是又不抛出异常,也没有什么错! 解决方案 java网络编程之缓存java网络编程之缓存(三)对使用Java Socket网络编程的详细讲解 解决方案二: http://blog.sina.com.cn/s/blog_616e189f0100s3px.html 解决方案三: 是不是其他问题啊?可以使用缓存的,可以贴出主要代码 解决方案四: import java.io.BufferedOutputStream; imp

Java网络编程:UDP DatagramSocket

DatagramSocket类是java通过UDP通信的途径.UDP仍位于IP层的上面. 你可以用DatagramSocket类发送和接收UDP数据包. UDP 和TCP UDP工作方式和TCP有点不同.当你通过TCP发送数据时,你先要创建连接.一旦TCP连接建立了,TCP会保证你的数据传递到对端,否则它将告诉你已发生的错误. 仅仅用UDP来发送数据包(datagrams)到网络间的某个IP地址.你不能保证数据会不会到达.你也不能保证UDP数据包到达接收方的指令.这意味着UDP比TCP有更少的协

java网络编程如何规定协议

问题描述 如题,谢谢大家帮助,来处理这件事情了 解决方案 参考以存在的各种保温协议..广义的问题,广义的答案...解决方案二:参考以存在的各种保温(报文)协议.. 广义的问题,广义的答案... 错别字了...根据业务需求,从**位到**位是一个域,不满用空格填充.等等...解决方案三:Socket是不区分协议的,关键是你的服务端怎么写,客户端怎么请求的.

UNIX网络编程:UDP编程模型简介

使用UDP编写的一些常见得应用程序有:DNS(域名系统),NFS(网络文件系统)和SNMP(简单网络管理协议). 客户不与服务器建立连接,而是只管使用sendto函数给服务器发送数据报,其中必须指定目的地(即服务器)的地址作为参数.类似的,服务器不接受来自客户的连接,而是只管调用recvfrom函数,等待来自某个客户的数据到达.recvfrom将与所接收的数据报一道返回客户的协议地址,因此服务器可以把响应发送给正确的客户. 对于UDP,写一个长度为0的数据报时可行的.在UDP情况下,这会形成一个