InetAddress host = InetAddress.getLocalHost(); Socket link = new Socket(host, Integer.parseInt(args[0])); System.out.println(“before input stream”); ObjectInputStream in = new ObjectInputStream(link.getInputStream()); System.out.println(“before output stream”); ObjectInputStream out = new ObjectOutputStream(link.getOutputStream()); “输入流之前”是cmd-line上的最后一个生命值。 没有抛出exception。 为什么会这样? 我不明白…… args [0]是5000. //编辑:flush没有帮助。
我有一个布尔变量来控制服务器的执行(启动/停止): private boolean ecoute = true; 这是我的class级: sw=new SwingWorker (){ protected String doInBackground() throws Exception { try { server = new ServerSocket(Integer.parseInt(port.getText())); String str1=”waiting for connexion..”; String str2=”Connexion ok”; log.append(str1+”\n”); PrintWriter out=null; BufferedReader in=null; Socket socClient=null; while(ecoute){ socClient = server.accept(); log.append(str2+”\n”); in = new BufferedReader( new InputStreamReader(socClient.getInputStream()) ); out = new PrintWriter( new BufferedWriter( new […]
您知道任何支持HTTP / 1.1的HTTP流水线选项的免费Java库( http://en.wikipedia.org/wiki/HTTP_pipelining )吗?
在我的应用程序中,有一个模块使用ServerSocket来侦听传入的TCP连接。 当我切换客户端使用UDP时,我希望无论如何都会收到数据,但我错了。 但是,当我查看文档时,我找不到任何配置选项来设置UDP的套接字。 我必须使用不同的课程吗?
如何使用正在侦听端口进行套接字连接的Servlet实现Web应用程序?
我正在开发多人游戏,我无法找到如何将其他客户连接到创建的游戏。 我的意思是客户端A创建到服务器的套接字连接以及其他客户端(A,B ……)如何连接到客户端A? 有人可以帮帮我吗? PS我是网络编程的新手,所以如果你能附上一些例子,我将非常感激。
我正在尝试使用Java中的套接字和对象流来进行本地IPC,但是我看到性能不佳。 我正在测试通过ObjectOutputStream发送对象的ping时间,以通过Socket上的ObjectInputStream接收回复。 这是请求者: public SocketTest(){ int iterations = 100; try { Socket socket = new Socket(“localhost”, 1212); ObjectInputStream objectInputStream = new ObjectInputStream(socket.getInputStream()); ObjectOutputStream objectOutputStream = new ObjectOutputStream(socket.getOutputStream()); double start = System.currentTimeMillis(); for (int i = 0; i < iterations; ++i) { Request request = new Request(); objectOutputStream.writeObject(request); Response response = (Response)objectInputStream.readObject(); } double finish = […]
我正在构建一个侦听TCP和UDP的应用程序,而且我的关机机制遇到了一些问题。 当我在每个侦听线程上调用Thread.interrupt()时,TCP线程会被监听中断,而UDP侦听器则不会。 具体来说,TCP线程使用ServerSocket.accept() , ServerSocket.accept()返回(没有实际连接)。 UDP线程使用DatagramSocket.receive() ,但不退出该方法。 这是我的JRE,我的操作系统中的问题,还是应该切换到(Datagram)Socket.close() ? 更新:我找到了问题的分析 。 它确认行为不一致。
我在客户端有这个代码: DataInputStream dis = new DataInputStream(socketChannel.socket().getInputStream()); while(dis.available()){ SomeOtherClass.method(dis); } 但是,尽管流中有可读数据,但available()仍然返回0 。 因此,在完成要读取的实际数据之后,将空数据传递给另一个要读取的类,这会导致损坏。 经过一番搜索; 我发现在使用套接字时, available()是不可靠的,我应该从流中读取前几个字节,以实际查看数据是否可用于解析。 但就我而言; 我必须将我从套接字获得的DataInputStream引用传递给其他一些我无法更改的类。 是否可以从DataInputStream读取几个字节而不破坏它或任何其他建议?
我已经看到很多在Java中通过套接字发送序列化数据的例子,但我想要的只是发送一些简单的整数和一个字符串。 而且,问题是我正在尝试将这些传达给用C编写的二进制文件。 那么,底线:如何在Java中通过套接字发送一些字节?