大家进来看看这个套接字为什么出错?

kisshujinwen 2010-11-07 03:36:40
客户端
package server;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.Socket;

public class Lesson10client{
public static void main(String args[]){
client();
}
public static void client(){

try{
Socket s = new Socket("127.0.0.1",1999);
InputStream ips = s.getInputStream();
InputStreamReader ipsr = new InputStreamReader(ips);
BufferedReader br = new BufferedReader(ipsr);

String strline = br.readLine();
if(strline !="")
System.out.println(strline);
OutputStream ops = s.getOutputStream();
OutputStreamWriter opsw = new OutputStreamWriter(ops);
BufferedWriter bw = new BufferedWriter(opsw);
bw.write("this is kiss wen");
bw.flush();

s.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}



服务端:
package server;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;

public class Lesson10 extends Thread{
private Socket s;
public Lesson10(Socket s){
this.s = s;
}
public void run(){
try {
OutputStream ops = s.getOutputStream();
OutputStreamWriter opsw = new OutputStreamWriter(ops);
BufferedWriter bw = new BufferedWriter(opsw);
bw.write("hello,welcome you!");
bw.flush();

InputStream ips = s.getInputStream();
InputStreamReader ipsr = new InputStreamReader(ips);
BufferedReader br = new BufferedReader(ipsr);
String str = br.readLine();
if(str != "")
System.out.println(str);
s.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String args[]){
server();
}
public static void server(){
System.out.println("ser");
try{
ServerSocket ss = new ServerSocket(1999);
while(true){
Socket s = ss.accept();
new Lesson10(s).start();
}
//ss.close();
}
catch (Exception e){
e.printStackTrace();
}
}


}


为什么就是不能传输???
...全文
34 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
kisshujinwen 2010-11-07
  • 打赏
  • 举报
回复
感谢啊,原来是这样的,呵呵,谢谢,谢谢
茫茫大海 2010-11-07
  • 打赏
  • 举报
回复
因为你用了BufferedReader的readLine方法,该方法要读一行才结束,也就是说,数据后面还要有一个换行符,这样才能读到数据,并往下执行,否则一直处于阻塞状态。所以在程序中的两个地方修改:

bw.write("hello,welcome you!\n");//Lesson10的这句,后面加个换行符
bw.write("this is kiss wen\n");//Lesson10client的这句后面加上换行符

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧