gpt4 book ai didi

Java、Socket 和传输文本

转载 作者:行者123 更新时间:2023-12-01 16:06:53 24 4
gpt4 key购买 nike

我有一个问题,我学习如何使用套接字并使用下一个代码编写程序:

import java.net.*;
import java.io.*;
import java.util.*;

public class Client extends Thread{

public static void main(String args[])
{
try
{

Socket s = new Socket(args[0],Integer.parseInt(args[1]));
BufferedReader br=new BufferedReader(new InputStreamReader(System.in,"CP866"));
String str;
str=br.readLine();
str = str+"\n"+s.getInetAddress().getHostAddress()
+":"+s.getLocalPort();
PrintWriter pw = new PrintWriter(new OutputStreamWriter(s.getOutputStream()));
pw.println(str);
pw.flush();
while(true){
str=null;
if((str=br.readLine())==null)
break;
str = str+"\n"+s.getInetAddress().getHostAddress()
+":"+s.getLocalPort();
System.out.println(str);
pw.print(str);
pw.flush();
}
}
catch(Exception e)
{System.out.println("init error: "+e);}
}

}

服务器端的程序只是打印获取的消息,第一条消息正常打印,但下一条消息以格式打印:,当我剪切25-26行时 - 消息未发送或未获取。

为什么?

最佳答案

您编写了print(str);。所以你不会打印换行符(\n)。您的服务器端还使用 BufferedReader (我想)。他正在阅读直到换行。

所以改为println(str);

关于Java、Socket 和传输文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2395952/

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