socket = new Socket("127.0.0.1", 23456);
// 输出流
pWriter = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
// 输入流
bReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
textArea.append("连接成功\n");
String line = null;
// 连接sock的用户发言,其他连接用户也可以看到
while ((line = bReader.readLine()) != null) {
.....后面的内容不重要
发送消息
if (msg != null && pWriter != null) {
//发送一个标记
pWriter.write("click@" + msg );
pWriter.flush();
}
原因:使用readLine() 函数来读取流中的信息时候是按行读取,流中认为行一定要有结尾,也就是添加 \t 或者 \n,如果不添加的话,会认为这行你还没有写完,不会读取,所以加个 后缀就好了
if (msg != null && pWriter != null) {
//发送一个标记
pWriter.write("click@" + msg + "\n");
pWriter.flush();
}