【为什么Java从套接字中读取随机数量而不是整个消息?】教程文章相关的互联网学习教程文章

Java套接字消息到达顺序【代码】

我想写一个套接字程序……Socket socket = new Socket("127.0.0.1",12345); DataOutputStream output = new DataOutputStream( socket.getOutputStream() ); output.writeUTF("Hello"); output.writeUTF("World");......“你好”,“世界”……首先到达哪个字符串?套接字是否保证订单?解决方法:TCP协议保证所有消息都完全按顺序发送.所以你可以依靠“世界”总是在“你好”之后到达的前提.如果“Hello”数据包由于某种原因而丢失,则...

Android中的Java客户端套接字连接【代码】

参见英文答案 > How do I fix android.os.NetworkOnMainThreadException? 51个我正在我的计算机和android之间创建一个客户端套接字连接. 这是服务器的代码:import java.io.PrintWriter; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket; import java.net.UnknownHostException;class Server {public static void main(String[] args) {String ip = getIp...

套接字连接 – Java添加字节【代码】

我想通过套接字从我的Android设备向我的node.js服务器发送一个字符串.连接已经起作用,但每当我发送字符串时,服务器都会收到其他字符. 这是我将string“hans”发送到node.js服务器时收到的内容:Buffer ac ed Buffer 00 05 77 04 68 61 6e 73作为utf8字符串:?? ?w?hans这是发送字符串的Java部分: clientSocket = new Socket("xxx.xxx.xxx.xxx",9988); ObjectOutputStream clientOut = new ObjectOutputStream(clientSocket.getOut...

Java服务器套接字响应【代码】

我正在尝试创建一个简单的客户端/服务器套接字通信应用程序(聊天客户端).我花了无数个小时看着如何解决这个仍然没有运气,我可以将消息发送到服务器,但我坚持将消息从服??务器发送回客户端. 我相信问题是我在收到邮件之后从服务器收到邮件的方式,我删除了我所拥有的一个我无法工作的InputStreamReader. (我提前为草率代码道歉) Server.javapublic class Server extends Thread { @SuppressWarnings("unused") private static Socket...

在rx-java中的套接字看门狗【代码】

我目前正在努力尝试使用rx实现tcp看门狗/重试系统,您的帮助将不胜感激. 有一个Observable,我想通过定期检查我们是否仍然可以写入套接字来获得Observable.很简单,我可以做这样的事情:class SocketSubscribeFunc implements Observable.OnSubscribeFunc<Socket> {private final String hostname;private final int port;private Socket socket;SocketSubscribeFunc(String hostname, int port) {this.hostname = hostname;this.port...

java – 为什么即使套接字关闭,socket.isOutputShutdown()也返回false?

Java Socket API告诉我关闭套接字也将关闭套接字的InputStream和OutputStream. Socket API Javadoc和Input / OutputStream API信息都没有定义(我还没有找到)究竟是什么“关闭”对OutputStream或InputStream意味着什么,但我一直假设关闭要么将它们置于“关闭”状态州. 但是,在我成功调用我的客户端套接字的close()方法之后(调用isClosed()返回true),如果我然后调用该套接字的isInputShutdown()或isOutputShutdown()方法,则结果为fal...

为什么Java从套接字中读取随机数量而不是整个消息?【代码】

我正在研究一个项目,并对Java套接字有疑问.源文件可以找到here. 在以纯文本成功传输文件大小后,我需要传输二进制数据. (DVD .Vob文件) 我有一个循环,如// Read this files sizelong fileSize = Integer.parseInt(in.readLine());// Read the block size they are going to useint blockSize = Integer.parseInt(in.readLine());byte[] buffer = new byte[blockSize];// Bytes "red"long bytesRead = 0;int read = 0;while(bytesRea...

java – 通过断开连接的套接字写入不会抛出【代码】

作家:socket.setSendBufferSize(1);socket.setTcpNoDelay(true);writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF-8"));用法如下:try {writer.write(packet.toXML());writer.flush();...}catch (Exception ioe){if (!done) {done = true;... } }这是客户端代码.当它的服务器断开套接字(也是java代码)时,客户端如何才会在5-10分钟后抛出?它是否应该在第一次尝试写入死连接时抛出? 谢谢...

java – 如何使用datainputstream从套接字读取【代码】

我可以显示收到的单个图像,但现在我想在我的磁盘上接收和写入多个图像,这些图像将在每5秒后从Android客户端发送一次.Socket sock = servsock.accept(); dataInputStream = new DataInputStream(sock.getInputStream()); dataOutputStream = new DataOutputStream(sock.getOutputStream()); System.out.println("Accepted connection : " + sock); dataInputStream = new DataInputStream(sock.getInputStream());byte[] base64=dat...

Java TCP / IP套接字如何报告应用程序的传输成功或失败?【代码】

我遇到Java TCP / IP套接字问题:我的Java应用程序将继续无休止地将数据发送到服务器,即使服务器在此期间关闭(没有正确的TCP / IP断开连接). 我使用以下代码发送数据:PrintWriter out = PrintWriter(socket.getOutputStream(), true); out.write("text");if (out.checkError()) {System.err.println("Error sending string!"); }在another Stack Overflow question,我找到了以下答案:TCP/IP (and therefor java sockets)will gua...

如何更改Java ROME解析器的默认套接字超时?

我正在使用Java ROME作为我的XML解析器来级联解析相当数量的RSS源.有时,由于网络问题,其中一个RSS源可能无法访问,这会在尝试创建XMLReader对象(新的XMLReader(url))时导致Socket超时. 问题是默认超时持续大约20年,当它发生时,它会减慢整个过程. 有没有办法在Java ROME中更改默认套接字超时?解决方法:创建XMLReader对象(新的XMLReader(url))时,您已经有一个URLConnection对象,该对象作为XMLReader的参数传递.调用URLConnection的se...

java – 与NSD连接的Android设备,如何使用套接字发送消息(Client-Client)?

我最近在本指南的帮助下,通过几个设备在我的应用程序中设置了P2P通信:http://developer.android.com/training/connect-devices-wirelessly/nsd.html 所以,现在我可以在我的网络中找到运行我的应用程序的其他设备.现在我想在客户端之间发送消息.可以是1,2或更多客户端,但消息一次只能发送到1个客户端,更像PING请求但有一些文本. 我一直在阅读插座,它似乎是要走的路(将在不久的将来与iOS设备通信).但是..在所有示例和教程中,我发现客...

Java NIO之套接字通道【代码】【图】

http://www.tianxiaobo.com/2018/03/25/Java-NIO%E4%B9%8B%E5%A5%97%E6%8E%A5%E5%AD%97%E9%80%9A%E9%81%93/ 1.简介 前面一篇文章讲了文件通道,本文继续来说说另一种类型的通道 – 套接字通道。在展开说明之前,咱们先来聊聊套接字的由来。套接字即 socket,最早由伯克利大学的研究人员开发,所以经常被称为Berkeley sockets。UNIX 4.2BSD 内核版本中加入了 socket 的实现,此后,很多操作系统都提供了自己的 socket 接口实现。通...

是否可以通过Java NIO非阻塞套接字异步访问数据库?

我想以非阻塞的方式访问数据库,换句话说,我将通过套接字发送SQL请求并通过同一套接字异步读取查询响应.这意味着我只能从套接字中读取数据(Java NIO SocketChannel),所以我从不阻止. 我可能错了,但据我所知,数据库的JDBC驱动程序都使用阻塞套接字. 即使我必须执行一个返回100万行的查询,我也可以异步执行,接收在套接字缓冲区中可用的行. 我的目标是执行SQL查询而不会阻塞(即不会产生延迟).使用单独的线程不是一种选择.我需要在网络线...

java – 如何从API端点按需按数据库逐个获取yield yield结果?是否需要网络套接字?【代码】

我正在考虑在应用程序中设置一个页面,每个查询都可以返回一个不适合内存的结果集,或者查询所有查询都非常昂贵.用户将点击“获取更多”以获得更多结果.我想知道我是否可以使用类似Java的yielder(http://benjiweber.co.uk/blog/2015/03/21/yield-return-in-java/)以及我是否需要Web套接字,例如Spring(http://docs.spring.io/spring/docs/current/spring-framework-reference/html/websocket.html),以便客户端可以告诉服务器推送更多结...