gpt4 book ai didi

java - java socket程序中的多线程

转载 作者:行者123 更新时间:2023-12-01 13:20:47 26 4
gpt4 key购买 nike

我想在我的Java套接字程序中实现多线程。到目前为止,我已经尝试过单个连接并且它可以工作,但由于是单个连接,因此过程很慢。我应该如何继续,以便通过多线程使进程更快?

import java.io.BufferedInputStream;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;

public class MRPosting {
public static String MRPost(String strRequestMessage, String strIP,
int intPort) throws Exception {
String strResponseMessage = "";
try{
Socket socket = null;
socket = new Socket(strIP, intPort);
BufferedInputStream bin = new BufferedInputStream(
socket.getInputStream());

PrintWriter pw1 = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())), true);
pw1.println(strRequestMessage);
pw1.flush();

strResponseMessage = readInputStream(bin);
socket.close();
socket = null;
}catch(Exception e){
strResponseMessage = "ERROR:MRPORT_JAVA:"+e.toString();
return strResponseMessage;
}
return strResponseMessage;

}

public static String readInputStream(BufferedInputStream in)
throws Exception {
String read_msg = "";

int i = in.read();
if (i == -1) {
return "-1";
}
read_msg = read_msg + (char) i;
int available = in.available();
if (available > 0) {
byte[] Data = new byte[available];
in.read(Data);
read_msg = read_msg + new String(Data);
}
return read_msg;
}

}

最佳答案

多线程!=速度提高。

您应该阅读(Google)更多有关客户端/服务器套接字编程的内容,因为您的程序甚至还没有接近正常运行的程序。您需要一个 ServerSocket 来监听服务器并接受来自客户端的连接,对于每个连接,您需要打开一个 Socket 连接并通过 IO 流交换信息。

关于java - java socket程序中的多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22036788/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com