永发信息网

java socket问题,帮忙看看。收不到信息。

答案:5  悬赏:40  手机版
解决时间 2021-02-11 11:08
已经写好了服务端和客户端,大家帮忙看看为什么收不到信息。
服务端:

package com.polyphylla.socket;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

public class SocketServer {
private PrintWriter pw;
private BufferedReader br;
private ServerSocket ss;
private Socket s;

public static void main(String[] args) {
new SocketServer().start();
}
public void start() {
// TODO Auto-generated method stub
try {
ss = new ServerSocket(2222);
while (true) {
s = ss.accept();
pw = new PrintWriter(s.getOutputStream(), true);
br = new BufferedReader(new InputStreamReader(s
.getInputStream()));
new Thread(new Runnable() {

public void run() {
// TODO Auto-generated method stub
String msg = "";
try {
// while(true) {
while (true) {
msg = br.readLine();
System.out.println("client:" + msg);
}
// }
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}).start();
new Thread(new Runnable() {
public void run() {
while (true) {
Scanner s = new Scanner(System.in);
String msg = s.next();
pw.print(msg);
}
}
}).start();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}
客户端:

package com.polyphylla.socket;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;

public class SocketClient {
private PrintWriter pw;
private BufferedReader br;
private Socket s;


public static void main(String[] args) {
new SocketClient().start();
}

public void start() {
// TODO Auto-generated method stub
try {
s = new Socket("127.0.0.1", 2222);
pw = new PrintWriter(s.getOutputStream(), true);
br = new BufferedReader(new InputStreamReader(s.getInputStream()));
new Thread(new Runnable() {

public void run() {
// TODO Auto-generated method stub
String msg = "";
try {
while (true) {
msg = br.readLine();
System.out.println("server:" + msg);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}).start();
new Thread(new Runnable() {
public void run() {
while (true) {
Scanner s = new Scanner(System.in);
String msg = s.next();
pw.print(msg);
}
}
}).start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}
最佳答案
其实这个通讯的流程你不还是不清楚。要一个写,一个读,这个过程都是单向的。就是说如果客户端先写。那么服务器就读,或者是服务器先写。客户端读。这样子才行。
全部回答

把你服务端的:server.close();  这一句注释了,试试。

我是来观望的。
把pw.print(msg); 改成pw.println(msg); 或改成pw.print(msg);pw.flush(); 就可以了
问题出在流上面 public void run() { // TODO Auto-generated method stub String msg = ""; try { while (true) { msg = br.readLine(); 客户端走到这一步就走不下去了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
牛仔裤的裤边总是很快就磨破,有什么方法预防
监理规划编写依据和要求编制建设工程监理规划
祝爸爸生日快乐!英文怎么写
农夫渔夫在什么地方啊,我要过去处理事情
车站办的临时身份证有效期一天是指24小时吗
其实我又买不起房,但我为什么总是为买房而烦
中国结婚的法制年龄是多少?
大佬们,是暴击不满的爆伤厉害,还是追求满暴
【决胜千里之外】运筹帷幄之中决胜千里之外..
龙文学校(紫薇·天悦西南)我想知道这个在什么
狼人和提莫单挑谁更厉害?
客运稽查部门能否上高速执法吗
广州到万源还有火车票吗
洪格尔在哪里啊,我有事要去这个地方
肾脏内髓部高渗尿的形成与下列何种因素有关A.
推荐资讯
为什么150摩托三轮电启动滚珠总是坏是怎么回
加装导航,路畅一体机怎么样?好用吗?
高密到安丘汽车怎么走
电容上面有个点1UF到底是1UF还是0.1UF,请高手
对方QQ不上线,QQ邮箱能收到QQ邮件吗
老人一天大便次数多
上海奔驰4s店的营业时间
赠汪伦和送孟浩然之广陵属于什么诗
下列不属于生长激素作用的是()。
祗园禅寺在哪里啊,我有事要去这个地方
Mr Browm learned
【they have recently opened a new college
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?