Tag: 套接字

从服务器套接字java中的客户端获取数据

我正在创建一个服务器应用程序,它执行以下任务 接受客户端的连接 处理每个客户端连接到单独的线程 从客户端接收数据 将数据发送到客户端 我能够连接客户端但无法从客户端接收数据 只有在客户端断开连接时才能在我的控制台中看到数据.. !!! 代码: – public class ServerListener { public static void main(String[] args) { new ServerListener().startServer(); } public void startServer() { final ExecutorService clientProcessingPool = Executors .newFixedThreadPool(10); Runnable serverTask = new Runnable() { @Override public void run() { try { ServerSocket serverSocket = new ServerSocket(8000); System.out.println(“Waiting for clients to […]

在Java中的HTTP请求中添加HEADER

我正在使用以下代码发送简单的HTTP请求: try { Socket s = new Socket (); s.bind (new InetSocketAddress (ipFrom, 0)); s.connect (new InetSocketAddress (ipTo, 80), 1000); PrintWriter writer = new PrintWriter (s.getOutputStream ()); BufferedReader reader = new BufferedReader (new InputStreamReader (s.getInputStream ())); writer.print (“GET ” + szUrl + ” HTTP/1.0\r\n\r\n”); writer.flush (); s .close (); reader.close (); writer.close (); } 但是,正如您所看到的,我不发送自定义HEADER。 […]

从Socket读取一个字节数组

我已经阅读了太阳指南和不同的类似问题。 我想从Socket中读取一些未知数量的字节到数组中。 我有两个选项,我可以在循环中使用read(byte)并将字节添加到byte数组中,或者我可以使用DataInputStream readFully(byte[])将所有字节读入字节数组。 哪一个更好,如何预先找到字节数组的大小进行分配? 另外,如果我使用第一种方法如何在字节数组中追加字节。 while(in.read(b) ! = -1) { //Add to byte array, but how to append at the end? } 我可以使用StringBuilder接收数据,附加到它然后执行toString().getBytes() ?

Android扫描本地子网

我目前正在编写一个小型测试Android应用程序,并且遇到了模拟器的一个小(大)问题。 发出并扫描本地子网的代码,用于运行我的软件服务器软件的计算机不返回任何内容! 这段代码在桌面部分完美运行,所以我知道我的模拟器内部有问题。 我不得不首先对IP扫描进行硬编码,因为我无法确定仿真器中的IP地址,所以我知道我至少扫描了正确的范围。 简介:如何通过本地子网上的模拟器内部的套接字连接到服务器? 谢谢大家! 这是请求的代码: public static ArrayList serviceScanner() { ArrayList servers = new ArrayList(); // Get the IP of the local machine String iIPv4 = “”; String test = “”; //getLocalIpAddress(); //System.out.println(test); try { // Get localhost InetAddress addr = InetAddress.getLocalHost(); // Get IP Address byte[] ipAddr = addr.getAddress(); iIPv4 = addr.toString(); […]

如何保护客户端/服务器套接字通信

假设客户端和服务器应用程序在不同的计算机上运行 今天: // Server will receive the request and cast it as needed ProxyResponse message = (ProxyResponse) objStream.readObject(); // Update message with some content … // Sent it back to client ObjectOutputStream oos = new ObjectOutputStream(toClient); oos.writeObject(message); 我想进一步增强这一点,以确保发出的数据以某种方式受到保护。 您如何推荐我接近这个? 我正在寻找一个示例,说明客户端和服务器之间传递的数据如何在两端加密和解密并通过SSL发送。

调用setSoLinger与0值并且根本不启用soLinger有什么区别?

在Java中,设置套接字与Socket.setSoLinger(true,0)和不调用setSoLinger之间有区别吗? sockets的关闭方式有区别吗? 我已经查看了Java源代码,并且我没有看到关于soLinger的套接字关闭有什么特别之处。 这让我相信这是一个特定于操作系统的行为。 就我而言,我正在研究Linux。

写入Socket outputStream没有关闭它

我想给服务器写一些消息。 每次,仅对于tramsmitting,我正在关闭outputStream并在我必须发送下一条消息时重新打开它。 os.write(msgBytes); os.write(“\r\n”.getBytes()); os.flush(); os.close(); 我如何保持这个Socket的OutputStream,os,打开并仍然能够发送消息? 谢谢。

用rest创建一个java服务器

我需要创建一个rest服务器和客户端。 我偶然发现了使用套接字的本教程 。 我希望能够使用REST调用,可能是HTTP,因为客户端实际上使用的是不同的语言。 而不是使用java.net.* Socket api java.net.*我应该使用什么? 如果我使用Socket API,我可以使用c ++和php与此服务器通信吗? 或者我应该使用REST? 任何方向赞赏。

如何解除阻塞在ServerSocket.accept()上阻塞的线程?

我有一个服务器线程与此代码: public void run() { try { ServerSocket server; EneaLog.printLog(“Server is running.”); server = new ServerSocket(this.portnumber); while (true) { new EneaServerConnection(server.accept(), this.project,stopped).start(); if (stopped) { EneaLog.printLog(“Server safe-shutdown completed.”); EneaLog.printLog(“Hi!”); server.close(); return; } } } catch (IOException ex) { Logger.getLogger(EneaServer.class.getName()).log(Level.SEVERE, null, ex); project.getExceptionHandler().handler(ex); } } 和这样的关机方法: public void shutdown() { EneaLog.printLog(“Server shutdown NOW!”); stopped = true; […]

带有带外数据的Java套接字

有人知道如何使用Java套接字接收(如何知道您收到的)带外数据? 特别是我已经阅读了sendUrgentData和setOOBInline的文档,其中说明: 请注意,仅提供有限的支持来处理传入的紧急数据。 特别是,没有提供传入紧急数据的通知,除非由更高级别的协议提供,否则无法区分正常数据和紧急数据。 但我仍然希望有人有解决方案:-) 更多细节: 我正在通过套接字发送序列化对象,我并没有真正看到如何在流中找到插入“随机”OOB字节(除了Java在我尝试反序列化时会给我一个例外的事实宾语)。