Tag: sockets

使用java的点对点应用程序

我想使用java和netbeans IDE开发一个p2p应用程序。 在我的应用程序中,我想做两件事 用户之间的文件共享 我从不同资源中读取的用户之间的聊天 对等套接字项目简介 点对点文件共享 问题是我如何能够连接两台或多台连接到不同网络的PC。 显示所有连接的对等体,在大小限制下的任何类型的文件共享。 任何帮助将不胜感激。

通过Java中的Socket处理POST请求

我正在尝试使用Socket处理Java中的简单POST请求。 我可以收到请求标头并回答请求没有任何问题,但我当然无法得到请求的正文。 我在某处读到了我需要打开第二个InputStream来实现这个目标,但这对我来说并没有多大意义。 您有关于如何获取请求正文的任何​​提示吗? 这是我基本上用来获取标题: BufferedReader in = new BufferedReader(new InputStreamReader( clientSocket.getInputStream())); char[] inputBuffer = new char[INPUT_BUFFER_LENGTH]; int inputMessageLength = in.read(inputBuffer, 0, INPUT_BUFFER_LENGTH); String inputMessage = new String(inputBuffer, 0, inputMessageLength); 所以,我得到的信息是这样的: POST / HTTP/1.1 User-Agent: Java/1.8.0_45 Host: localhost:5555 Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 但我无法获取POST请求的参数。 编辑: 所以事实certificate我只有INPUT_BUFFER_LENGTH足够高(我知道,对我感到羞耻)。 因此,当我工作时,我将我的ServerSocket更改为SSLServerSocket并再次尝试从Java发送带有HttpsUrlConnection的请求,现在我又遇到了同样的问题(已经检查过缓冲区),得到这样的结果: POST / HTTP/1.1 User-Agent: Java/1.8.0_45 […]

使用Java套接字获取GET请求

我正在编写一个简单的程序来向特定url“ http://badunetworks.com/about/ ”发送获取请求。 如果我将其发送到“ http://badunetworks.com ”,请求仍然有效,但我需要将其发送到about页面。 package badunetworks; import java.io.*; import java.net.*; public class GetRequest { public static void main(String[] args) throws Exception { GetRequest getReq = new GetRequest(); //Runs SendReq passing in the url and port from the command line getReq.SendReq(“www.badunetworks.com/about/”, 80); } public void SendReq(String url, int port) throws Exception { //Instantiate a […]

如何在JeroMQ中实现活动和备用队列作业处理系统?

使用ZeroMQ .Socket和.Socket实例,我能够推/拉消息 例如,我的代码下面的队列设置如下: ZMQ.Context context = ZMQ.context(1); // Socket to send messages on ZMQ.Socket sender = context.socket(ZMQ.PUSH); sender.bind(“tcp://*:5557”); // Send messages sender.send(“0”, 0); ZMQ.Socket receiver = context.socket(ZMQ.PULL); receiver.connect(“tcp://localhost:5557”); // receive messages String string = new String(receiver.recv(0)).trim(); 我的问题是 : Q1:如何在队列中实现主用/备用模式? 我的意思是将为一个主机和端口创建2个队列,如果一个队列(活动)发生故障,另一个(即备用)队列将立即启动以侦听/拉取消息。 任何实现它的示例或指导都会更有帮助。 Q2:是否有任何内置类可以执行此类任务?

什么是weblogic.socket.Muxer?

您是否了解WebLogic 8.1中使用的weblogic.socket.Muxer是什么? 通常在线程转储中,我看到类似于此的堆栈跟踪: “ExecuteThread: ‘0’ for queue: ‘weblogic.socket.Muxer'” id=20 idx=0x68 tid=26709 prio=5 alive, in native, blocked, daemon — Blocked trying to get lock: java/lang/String@0x2b673d373c50[fat lock] at jrockit/vm/Threads.waitForUnblockSignal()V(Native Method) at jrockit/vm/Locks.fatLockBlockOrSpin(Locks.java:1675)[optimized] at jrockit/vm/Locks.lockFat(Locks.java:1776)[optimized] at jrockit/vm/Locks.monitorEnterSecondStageHard(Locks.java:1312)[optimized] at jrockit/vm/Locks.monitorEnterSecondStage(Locks.java:1259)[optimized] at jrockit/vm/Locks.monitorEnter(Locks.java:2439)[optimized] at weblogic/socket/EPollSocketMuxer.processSockets(EPollSocketMuxer.java:153) at weblogic/socket/SocketReaderRequest.run(SocketReaderRequest.java:29) at weblogic/socket/SocketReaderRequest.execute(SocketReaderRequest.java:42) at weblogic/kernel/ExecuteThread.execute(ExecuteThread.java:145) at weblogic/kernel/ExecuteThread.run(ExecuteThread.java:117) at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method) — end of trace […]

使用TCP-Java套接字的心跳原型的良好超时

我在Java中实现我自己的proto,它将使用TCP连接的心跳,我也用它来传输消息和文件。 对于客户端,我使用阻塞套接字I / O. 所以这是我计划如何工作…我将设置套接字超时K秒并使心跳保持在间隔T发送消息,以便T <K。如果超时到期,看起来服务器离线对于客户,反之亦然。 心跳是发送字符串的服务器和客户端应答另一个字符串。 我不想浪费大量的带宽,但是如果超时,服务器可能会误认为客户的状态。 什么是良好的K区间? 我在想40秒 PS:字符串是ISO-8859-1中发送的8个字母,所以它的数据很小

我试图从JAVA中的IP地址获取位置信息,但我得到一个java.net.SocketException:连接重置错误

import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javaQuery.importClass.javaQueryBundle; import javaQuery.j2ee.GeoLocation; /** * Servlet implementation class IP */ public class IP extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public IP() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest […]

如何将数据从TCP套接字转换为ByteBuffer

我需要将来自套接字的传入数据传入ByteBuffer,我不知道该怎么做。 我是这个领域的新手,因此不确定最好的开始方式。 我找到了以下内容,但这不是我想要的,因为它获取了数据,但我需要将所有数据都存在于bytebuffer中以用于其他目的。 ServerSocket welcomeSocket = new ServerSocket(Integer.parseInt(ibmPort)); while (true) { Socket connectionSocket = welcomeSocket.accept(); BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream())); DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream()); clientSentence = inFromClient.readLine(); System.out.println(“Received: ” + clientSentence); setRequestDataFromCT(clientSentence); capitalizedSentence = clientSentence.toUpperCase() + ‘\n’; outToClient.writeBytes(capitalizedSentence); }

使用Java通过TCP发送JSON对象

我正在尝试替换我在终端中运行的Netcat命令,该命令将重置服务器上的某些数据。 netcat命令如下所示: echo ‘{“id”:1, “method”:”object.deleteAll”, “params”:[“subscriber”]} ‘ | nc xxxx 3994 我一直在尝试用Java实现它,因为我希望能够从我正在开发的应用程序中调用此命令。 我遇到了问题,该命令永远不会在服务器上执行。 这是我的java代码: try { Socket socket = new Socket(“xxxx”, 3994); String string = “{\”id\”:1,\”method\”:\”object.deleteAll\”,\”params\”:[\”subscriber\”]}”; DataInputStream is = new DataInputStream(socket.getInputStream()); DataOutputStream os = new DataOutputStream(socket.getOutputStream()); os.write(string.getBytes()); os.flush(); BufferedReader in = new BufferedReader(new InputStreamReader(is)); String inputLine; while ((inputLine = in.readLine()) != null) System.out.println(inputLine); is.close(); os.close(); […]

连接到Tomcat上的套接字?

我正在尝试从独立的applet连接到在tomcat上运行的servlet: Servlet的 public void init(ServletConfig config) throws ServletException { super.init(config); // Start a daemon thread try { daemonThread = new Daemon(this); daemonThread.start(); } catch (Exception e) { } } protected int getSocketPort() { return 8080; } public void handleClient(Socket client){ new ScribbleThread(this, client).start(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter […]