自己写的java 聊天小程序效果出不来,谁能帮忙看看
运行之后应该是客户端能随时给服务端发信息,服务端能接收到,服务端也是如此。现在两个收不到消息,代码贴不了太多先贴服务端的,大家帮忙看看有啥问题服务端代码:publiccl...
运行之后应该是客户端能随时给服务端发信息,服务端能接收到,服务端也是如此。现在两个收不到消息
,代码贴不了太多先贴服务端的,大家帮忙看看有啥问题
服务端代码:
public class server {
public static void main(String[] args) throws IOException {
ServerSocket s=new ServerSocket(2172);
Socket ss=s.accept();
new Thread(new serverread(ss)).start();;
new Thread(new serverwrite(ss)).start();;
}
}
class serverread implements Runnable{
Socket s;
public serverread(Socket s) {
super();
this.s = s;
}
public void run(){
try {
InputStream is=s.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(is));
String str=br.readLine();
while(true){
System.out.println("接收:"+str);
br.read();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
class serverwrite implements Runnable{
Socket s;
public serverwrite(Socket s) {
super();
this.s = s;
}
public void run(){
try {
Scanner sc=new Scanner(System.in);
OutputStream os=s.getOutputStream();
PrintWriter pw=new PrintWriter(new OutputStreamWriter(os));
String str;
while(true){
str=sc.nextLine();
System.out.println("发送:"+str);
pw.write(str);
pw.flush();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
是不是读写不该分两个线程? 展开
,代码贴不了太多先贴服务端的,大家帮忙看看有啥问题
服务端代码:
public class server {
public static void main(String[] args) throws IOException {
ServerSocket s=new ServerSocket(2172);
Socket ss=s.accept();
new Thread(new serverread(ss)).start();;
new Thread(new serverwrite(ss)).start();;
}
}
class serverread implements Runnable{
Socket s;
public serverread(Socket s) {
super();
this.s = s;
}
public void run(){
try {
InputStream is=s.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(is));
String str=br.readLine();
while(true){
System.out.println("接收:"+str);
br.read();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
class serverwrite implements Runnable{
Socket s;
public serverwrite(Socket s) {
super();
this.s = s;
}
public void run(){
try {
Scanner sc=new Scanner(System.in);
OutputStream os=s.getOutputStream();
PrintWriter pw=new PrintWriter(new OutputStreamWriter(os));
String str;
while(true){
str=sc.nextLine();
System.out.println("发送:"+str);
pw.write(str);
pw.flush();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
是不是读写不该分两个线程? 展开
2个回答
展开全部
服务端在等待客户端连接时候是一直在循环等待连接的啊。
追问
这个没关系吧,就一个客户端
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询