| 查看: 586 | 回复: 2 | ||
[求助]
Tcp
|
|
今天晚上对着书编了一个Tcp服务器和客户端,可客户端接不了服务器发送的数据,请问是怎么回事?小弟是新手,代码组织的不好,麻烦各位不耐其烦,帮帮忙!谢谢 附上代码: 服务器代码: import java.io.*; import java.net.*; public class TcpServer { public static String str = null ; public static boolean bl = true ; public static BufferedReader bfd = null ; public static BufferedReader bd = null ; public static OutputStream os = null; /** * Method main * * * @param args * */ public static void main(String[] args) { // TODO: 在这添加你的代码 try { ServerSocket ss = new ServerSocket(8001); Socket s = ss.accept(); InputStream is = s.getInputStream(); os = s.getOutputStream(); os.write("welcome to my domitory".getBytes()); bfd = new BufferedReader(new InputStreamReader(System.in)); /*byte [] buf = new byte[1024]; int len = is.read(buf);*/ bd = new BufferedReader(new InputStreamReader(is)); //os.write("welcome to my domitory".getBytes()); class Send implements Runnable { public void run() { while(bl) { try { System.out.println(bd.readLine()); } catch(Exception e) { e.printStackTrace(); } } } } class Reserve implements Runnable { public void run() { while(bl) { try { //if(bfd.ready()) //{ str = bfd.readLine(); os.write(str.getBytes()); //} } catch(Exception ex) { ex.printStackTrace(); } } } } new Thread(new Send()).start(); new Thread(new Reserve()).start(); /* os.close(); bd.close(); s.close(); ss.close();*/ } catch(Exception e) { e.printStackTrace(); } } } 客户端代码: import java.net.*; import java.io.*; class TcpClient { public static Socket s = null ; public static OutputStream ops = null ; public static InputStream ips = null ; public static BufferedReader bfd = null ; public static BufferedReader br = null ; public static PrintStream ps = null ; public static void main(String [] args) { try { s = new Socket("59.69.109.90",8001) ; //get stream ops = s.getOutputStream(); ips = s.getInputStream() ; br = new BufferedReader(new InputStreamReader(ips)); ps = new PrintStream(ops,true); //get keyboard stream bfd = new BufferedReader(new InputStreamReader(System.in)); class Send implements Runnable { public void run() { while(true) { try { String str = bfd.readLine(); ps.println(str); if(str.equals("quit" ){ break; } } catch(Exception ex) { ex.printStackTrace(); } } } } class Receive implements Runnable { public void run() { while(true) { try { //BufferedReader br = new BufferedReader(new InputStreamReader(ips)); String str = br.readLine(); //System.out.println(str); //ps.println(str); ops.write(str.getBytes()); if(str.equals("quit" ){ break; } } catch(Exception ex1) { ex1.printStackTrace(); } } } } /*bfd.close(); br.close(); ps.close(); s.close();*/ new Thread(new Send()).start(); new Thread(new Receive()).start(); } catch(Exception e) { e.printStackTrace(); } } } |
» 猜你喜欢
体制内长辈说体制内绝大部分一辈子在底层,如同你们一样大部分普通教师忙且收入低
已经有12人回复
过年走亲戚时感受到了所开私家车的鄙视链
已经有9人回复
今年春晚有几个节目很不错,点赞!
已经有10人回复
情人节自我反思:在爱情中有过遗憾吗?
已经有10人回复
基金正文30页指的是报告正文还是整个申请书
已经有5人回复
liu2012huan
铜虫 (正式写手)
- 应助: 12 (小学生)
- 金币: 383.5
- 红花: 2
- 帖子: 307
- 在线: 22.4小时
- 虫号: 2076886
- 注册: 2012-10-21
- 性别: GG
- 专业: 计算机软件

2楼2012-12-08 19:40:56
3楼2012-12-24 23:09:57













)
回复此楼