Tag: tcp

网络订单简称(Java)

我需要为我正在使用Java编写的游戏服务器发送网络订单简称。 我读到了有关网络订单的信息,但是我找不到有关在数据之前发送的短信的任何详细信息。 有人可以向我解释它是什么,以及如何使用Java向客户端发送一个?

使用TCP连接获取字节数组

我使用UDP发送/接收数据但我现在想切换到TCP以避免丢包。 我已经阅读了几篇关于TCP教程,并注意到TCP不使用像UDP这样的DatagramPacket,而是使用InputStream / OutputStream。 我们如何从DataInputStream获取byte [],这与此类似: byte[] receiveData = new byte[64000]; DatagramPacket receivePacket = new DatagramPacket(receiveData,receiveData.length); receiveData=receivePacket.getData();

java.net.ConnectException:连接拒绝TCP

目标 – 我想将java(PC)项目中输入的文本发送到显示此文本的android应用程序.PC连接到android mobile创建的wifi热点。 PC /客户端java项目代码: public class EcsDemo { public static void main(String[] args) { System.out.println(“Enter SSID to connect :”); Scanner in = new Scanner(System.in); String ssid = in.nextLine(); System.out.println(“You entered ssid ” + ssid); System.out.println(“Connecting to ssid ..”); DosCommand.runCmd(DosCommand.connectToProfile(ssid)); // netsh wlan connect name= System.out.println(“initializing tcp client ..”); try { TCPClient.startTCpClient(); } catch […]

Java套接字 – java.net.ConnectException:连接被拒绝:连接

我创建了一个简单的聊天程序,它使用套接字进行通信。 当我在localhost上运行时,一切正常。 但是,当我尝试使用我的IP链接客户端和服务器程序时,会出现问题。 http://www.canyouseeme.org/可以通过端口9999连接到我的服务器,所以我知道服务器很好,端口是打开的 。 但是,我的客户端无法连接。 错误日志…… java.net.ConnectException: Connection refused: connect at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(Unknown Source) at java.net.PlainSocketImpl.connectToAddress(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.(Unknown Source) at java.net.Socket.(Unknown Source) at Client.connect(Client.java:129) at Client.main(Client.java:47) 有没有人知道可能导致这种情况的原因是什么? 提前致谢。 编辑:完整源代码的链接: http://pastebin.com/2XftHtn9

通过套接字接收文件,TCP连接冻结

我已经用套接字加入了4h,我使用的方式是只有一个应用程序作为客户端和服务器,一旦客户端连接它就是用新客户端打开theard 并等待消息 。 一旦将消息发送到服务器,客户端将收到响应,该部分正在运行而没有任何问题。 客户Theard的一部分: while (true) { InputStreamReader IR = new InputStreamReader(clientSocket.getInputStream()); BufferedReader BR = new BufferedReader(IR); PrintStream PS = new PrintStream(clientSocket.getOutputStream()); String message = BR.readLine(); if (message != null) { System.out.println(clientSocket.getInetAddress() + “:” + clientSocket.getPort() + ” has connected.”+message); if (message.equals(“exit”)) { PS.println(“Exiting…”); exit(); } else if (message.equals(“list”)) { getList(PS); } else if […]

Java EchoTCPServer – 发送给所有客户

这是我的代码: 服务器: package com.murplyx.server; public class Main { public static void main(String args[]) { new EchoServer(9000); } } + package com.murplyx.server; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class EchoServer { private ServerSocket server; public EchoServer(int port) { try { server = new ServerSocket(port); while (true) { Socket socket = server.accept(); […]

是否可以非常频繁地调用ObjectOutputStream上的reset()?

我读到的地方让我不确定,并寻找另一种方式。 调用reset()过于频繁会对网络造成压力,还是不必要? 我在ObjectOutputStream上使用TCP发送一个对象。 在再次写入之前,对象值会更改。 现在相同的Object但包含不同的值,没有reset()它重新发送在它之前发送的缓存对象的引用,读取后没有任何更改。 由于这种压力,我不确定使用reset()是否是一个好主意。 我应该寻找另一种方式吗? 示例代码如下: Socket socket = new Socket(ip, port); BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream()); ObjectOutputStream oos = new ObjectOutputStream(bos); while(true){ oos.writeObject(object); oos.flush(); oos.reset(); object.x++; }

如何从服务器获取客户端套接字的确认?

我有一个客户端套接字,它向服务器发送消息。我想在服务器收到消息时在客户端获得确认。 是否有可能获得该确认。 我使用apache mina开发了客户端。 提前致谢。

ServerSocket reuseAddress允许绑定到已绑定的端口?

使用Netty时 ,我很惊讶如果我使用reuseAddress选项,它允许ServerSocket绑定到同一地址而不会引发“已绑定exception” ServerBootstrap bootstrap = new ServerBootstrap( new NioServerSocketChannelFactory(Executors .newCachedThreadPool(), Executors.newCachedThreadPool())); bootstrap.setPipelineFactory(new ChannelPipelineFactory() { @Override public ChannelPipeline getPipeline() throws Exception { ChannelPipeline p = pipeline(); p.addLast(“handler”, new DummyHandler()); return p; } }); bootstrap.setOption(“reuseAddress”, true); bootstrap.bind(new InetSocketAddress(2000)); bootstrap.bind(new InetSocketAddress(2000)); 我只是认为reuseAddress允许新的套接字重用一个close-wait套接字,但这是不同的。 以下是netstat命令的结果 C:\Users\secmask>netstat -a -n|grep 2000 TCP 0.0.0.0:2000 0.0.0.0:0 LISTENING TCP 0.0.0.0:2000 0.0.0.0:0 LISTENING 我错过了什么吗? 这是怎么回事?

serversocket类如何在同一端口上提供多个客户端连接?

当使用Socket类时,一个是在某个端口上与服务器建立TCP连接,但在服务器上,ServerSocket能够为每个接受请求处理多个客户端连接,并将其委托给一个线程来为请求提供服务。 但是,如何使ServerSocket类在同一端口上接受多个tcp连接。 这是否意味着由操作系统来决定它允许的连接数或允许的最大积压数是多少,这可以由OS上的应用程序控制(我的意思是java受OS支持的最大积压限制)并且是TCP规范中的积压连接是否有任何特权? 最好的反馈, 凯沙夫