[英]TCP socket communication
我正在用Java创建聊天。 我在对象内部有一个方法(onMouseRelease),该方法创建一个tcp服务器并等待这样的套接字:
ServerSocket server = new ServerSocket(port);
Socket channel = server.accept();
现在,我想创建一个线程,该线程将循环并从套接字读取数据,以便一旦另一侧的用户向我发送了一个字符串,我将从套接字中提取数据( 或者称为数据包?对不起,我是新本 ),并更新文本框添加从插座( 或包中的额外字符串?)。
我不知道如何从套接字( / packet )读取( 提取 )信息,然后将其更新为一个名为userOutput的JTextArea。 以及如何向另一个客户端发送字符串,以便它也可以读取新数据并更新其JTextArea。 据我所知,对于2面TCP通信,您需要一台计算机托管一台服务器,另一台计算机进行连接( 作为客户端 ),一旦建立连接,客户端也可以从套接字接收新信息。 真的吗? 请告诉我如何
任何帮助表示赞赏! 我知道这有点长,但是我进行了很多搜索并且不了解( 我看到了类似PrintWriter的内容,但听不懂 )。
您将必须执行以下操作;
InputStream in = new BufferedInputStream(channel.getInputStream());
然后,您可以使用循环从套接字读取字符;
char ch;
while (!finished) {
ch = in.read(); //read from socket
if(ch = -1) {
//nothing left to read
finished = true;
}
else {
//do something with ch
}
}
如果您愿意,我可以继续吗?
假设我们将传入的字符保存到名为input的字符串中,以更新您要调用的文本区域;
textArea.setText(input);
为了将文本发送回客户端,您将使用类似于输出流的接收方法。
OutputStream out = new BufferedOutputStream(clientSock.getOutputStream());
out.write(output);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.