Tag: 套接字

SocketException:使用ObjectInputStream在服务器上重置连接

我试图绕过ObjectInputStream / ObjectOutputStream ,所以我创建了一个非常简单的服务器 – 客户端应用程序,客户端通过创建的流发送HashMap对象,服务器接收并打印出来。 这是我的服务器代码: import java.io.*; import java.net.*; public class Server { public static void main(String[] args) throws IOException, ClassNotFoundException { ServerSocket server = new ServerSocket(4444); while (true) { Socket socket = server.accept(); ObjectInputStream objIn = new ObjectInputStream(socket.getInputStream()); if (objIn.readObject() != null) { System.out.println(objIn.readObject()); } } } } 这是我的客户端代码: import java.io.*; import […]

为什么DatagramSocketImpl joinGroup方法需要一个NetworkInterface,如果套接字必须已绑定到它?

只是好奇。 那是多余的吗? 你有没有绑定到你想要使用的网络? 也许这就是你绑定到0.0.0.0并且现在只想从接口X监听多播数据包的情况?

为什么我的申请没有进入我的if语句

我正在尝试用Java编写控制台客户端 – 服务器应用程序; 使用套接字,我目前有一个简单的登录系统和一个简单的命令系统。 登录系统似乎有效,但无论用户是否输入正确的凭据,它都会向客户端打印“无效的用户名和密码”行。 – 连接肯定有效。 但是,命令系统似乎根本不起作用,当服务器收到命令时,它似乎没有发回任何东西。 所以我的主要问题是为什么我的服务器在收到命令时不会向客户端发送任何内容? 这是我的服务器: import java.io.*; import java.net.*; class TCPServer2 { public static void main(String argv[]) throws Exception { ServerSocket welcomeSocket = new ServerSocket(6789); String[][] Login = {{“MATT”,”UNCP”},{“JOHN”,”UNCP”},{“CARL”,”UNCP”}}; String Command; String username; String username1; String password; String password1; String cmd; while(true) { Socket connectionSocket = welcomeSocket.accept(); BufferedReader inFromClient = […]

示例套接字应用程序不起作用

我正在学习java.net并尝试制作一个简单的应用程序。 这是代码: 编辑:我的错,对不起,但主要问题仍然存在。 这是更正后的代码: public static void main(String args[]){ try{ Socket s = new Socket(“localhost”, 3128); args[0] = args[0]+”\n”+s.getInetAddress().getHostAddress() +”:”+s.getLocalPort(); s.getOutputStream().write(args[0].getBytes()); byte buf[] = new byte[64*1024]; int r = s.getInputStream().read(buf); String data = new String(buf, 0, r); System.out.println(data); } catch(Exception e){ System.out.println(“init error: “+e); } } 但是当我试图启动它时它会给我以下错误: init error: java.lang.ArrayIndexOutOfBoundsException: 0 可能的原因是什么? UPD:这是剩下的痕迹: /usr/lib/jvm/jdk1.7.0_13/bin/java -Didea.launcher.port=7535 […]

read()和readObject()的问题

我尝试开发一款通过蓝牙播放1vs1的纸牌游戏。 我已连接设备,现在我有一个问题:我想发送Objects抛出蓝牙。 如果我只制作对象,它就有效,如果只有字符串,它可以工作。 但如果我试图同时制作两者,我就会遇到问题。 /** * This thread runs during a connection with a remote device. * It handles all incoming and outgoing transmissions. */ private class ConnectedThread extends Thread { private final BluetoothSocket mmSocket; private final InputStream mmInStream; private final OutputStream mmOutStream; // for Objects private final ObjectInputStream mObjectInStream; private final ObjectOutputStream mObjectOutStream; public […]

简单的java http客户端没有服务器响应

我正在尝试编写一个简单的Java http客户端,它只打印出一行服务器响应。 我的问题是我得不到服务器的响应。 这是我所拥有的,编译和运行没有明确的错误,它只是在我键入主机名后挂起,例如’www.google.com’: import java.io.*; import java.net.*; public class DNSTest { // Constructor public DNSTest() { } // Builds GET request, opens socket, waits for response, closes public static void main(String[] args) throws Exception{ String line; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //For each hostname while ((line = br.readLine()) != null){ //Resolve the hostname […]

静态数据成员未通过套接字发送到对象发送

我想为两个客户端发送相同的对象。 我使用object write unshared方法并读取非共享。 我的对象的类是: package servidor; import java.io.Serializable; public class Token implements Serializable { private static final long serialVersionUID = -5399605122490343339L; public static String sender, receiver, content; String id; public Token(String sender, String receiver, String content){ Token.sender = sender; Token.receiver = receiver; Token.content = content; } public static Token returnToken(){ Token token = new […]

请帮我弄清楚这个Web代理代码有什么问题

我想为练习编写一个Web代理,这是我到目前为止的代码: // returns a map that contains the port and the host def parseHostAndPort(String data) { def objMap // this has host and port as keys data.eachLine { line -> if(line =~ /^(?i)get|put|post|head|trace|delete/) { println line def components = line.split(” “) def resource = components[1] def colon = resource.indexOf(“:”) if(colon != -1) { URL u […]

从java检查服务可用性

如何使用java检查服务? 我发现了这篇文章 ,但它仅用于检查主机名。 我的问题是如何检查端口x运行的服务,例如: myhostname:8080或myhostname:8099 ,我可能在这些端口上运行服务n或p但是如果我手动操作它会通过web看到,怎么能我在java中实现了相同的效果?

使用DataOutputStream将消息写入客户端套接字仅在关闭Client Socket后发送到服务器套接字为什么?

我用Java编写了一个Socket-Client编程。 我正在使用DataOutputStream将消息发送到服务器套接字。 有时,DataOutputstream上的写入消息未发送到ServerSocket。 我认为这是因为我发送消息后没有冲洗。 我这样做但没用。 如果我终止类执行,那么只有我从ServerSocket接收消息。 我的代码: public class LoggingClient { LinkedBlockingQueue messages = new LinkedBlockingQueue(); public static LoggingClient clientObj; /* * waiting 2 seconds for connecting centralized log server . If it’s not reachable writing log’s in local machine * this log’s will be collected on eclipse restart. */ public static final int SOCKET_TIMEOUT […]