草庐IT

java - 如何通过java套接字发送Json对象?

你如何通过java中的ObjectOutputStream类通过套接字发送Json对象,这就是我到目前为止所得到的s=newSocket("192.168.0.100",7777);ObjectOutputStreamout=newObjectOutputStream(s.getOutputStream());JSONObjectobject=newJSONObject();object.put("type","CONNECT");out.writeObject(object);但这对java.io.streamcorruptedexception异常有什么建议吗?

java - 我如何检查IP是否在java中存在?

我的网络中有5台IP地址不同的设备。我希望连接到这些设备并在它们在我的网络中可用时通过TCP/IP套接字从它们获取数据。我如何检查它们在Java中是否可用?publicvoidsetUpConnection(){try{Socketclient=newSocket(hostIp,hostPort);socketReader=client.getInputStream();socketWriter=newPrintWriter(client.getOutputStream());}catch(UnknownHostExceptione){System.out.println("Error

java - 用 Java 广播 UDP 数据包的正确方法是什么?

我需要在每个网络接口(interface)上广播一个UDP数据包。起初,我尝试向255.255.255.255广播,没有结果,后来我发现这个“已经被弃用了大约20年”。所以我尝试在每个网络接口(interface)上迭代以获得接口(interface)的广播地址,然后将UDP数据包发送到该地址。还是下面的代码:publicstaticCollectiongetBroadcastAddresses(){try{Collectionresult=newLinkedList();Enumerationnets=NetworkInterface.getNetworkInterfaces();f

读取套接字时Java中断线程

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:HowtoterminateathreadblockingonsocketIOoperationinstantly?我让客户端在线程中运行,想从Java中的套接字读取数据。但是在阅读时,也许我想终止线程。所以我中断它,但是套接字的读取方法会抛出InterruptedException吗?我没找到。那么,当线程在读取套接字时阻塞时,我怎样才能很好地让线程死掉?谢谢

java - 卡在 java.net.SocketInputStream.socketRead0(Native Method)

我在java.net.SocketInputStream.socketRead0(NativeMethod)上卡住了。请看下面的线程转储,它已经处于这种状态3个小时了。Thread-0"prio=10tid=0x00007facd02a5000nid=0x309runnable[0x00007facd4a43000]java.lang.Thread.State:RUNNABLEatjava.net.SocketInputStream.socketRead0(NativeMethod)atjava.net.SocketInputStream.read(SocketInputStream.

java - 一个 java UDP 套接字可以处理多少个请求?

我需要构建一个可以处理~10_000个请求/秒的UDP服务器。从以下代码开始,测试Java套接字是否可以处理这些请求数。我用大约9000个请求轰炸服务器一分钟,Totalnumberofrequestssentfromtheclient:596951在我看到的tcp转储中90640packetscaptured175182packetsreceivedbyfilter84542packetsdroppedbykernelUDP服务器代码:try(DatagramSocketsocket=newDatagramSocket(port)){System.out.println("UdpSe

java - 读取/写入 Java 服务器套接字的最佳实践

如何设计在单个套接字(支持并行读写操作)上运行的读写循环?我必须使用多线程吗?我的(java)解决方案好吗?那sleep命令呢?你如何在这样的循环中使用它?我正在尝试使用2个线程:阅读publicvoidrun(){InputStreamclientInput;ByteArrayOutputStreambyteBuffer;BufferedInputStreambufferedInputStream;byte[]data;StringdataString;intlastByte;try{clientInput=clientSocket.getInputStream();byteBuff

java - 区分连​​接被拒绝和连接超时

使用java.net.Socket.connect()时,拒绝连接和超时都会导致ConnectException。java.net.ConnectException:Connectiontimedout:connectjava.net.ConnectException:Connectionrefused:connect我怎样才能安全地区分这两者?当然,解析错误消息就可以完成工作。但是当消息在未来的Java版本中发生变化时,我就不走运了。大局观:我正在编写一个使用JAX-WS和Metro实现的Web服务客户端。当一个web服务调用失败时,我想清楚的报告失败的原因,以便快速解决问题。

java - Apache HTTPClient 抛出 java.net.SocketException : Connection reset for many domains

我正在创建一个(表现良好的)网络蜘蛛,我注意到一些服务器导致ApacheHttpClient给我一个SocketException——特别是:java.net.SocketException:Connectionreset导致这个的代码是://ExecutetherequestHttpResponseresponse;try{response=httpclient.execute(httpget);//httpclientisoftypeHttpClient}catch(NullPointerExceptione){return;//deepdowninapachehttpsometi

Java 套接字 - 本地端口

我正在学习使用Java进行套接字编程。我使用以下语句连接到网站:s=newSocket("www.nba.com",80);当我调试应用程序并查看s的内容时,我看到:Socket[addr=www.nba.com/2.21.246.97,port=80,localport=7846]1)我想知道这个localport7846是从哪里来的,到底是什么。2)如果网站的IP地址是2.21.246.97,为什么我在浏览器的地址栏中输入2.21.246.97无法连接到网站?谢谢 最佳答案 它是本地套接字端口号。通常由系统分配。参见Whatis