| 查看: 567 | 回复: 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(); } } } |
» 猜你喜欢
拟解决的关键科学问题还要不要写
已经有7人回复
存款400万可以在学校里躺平吗
已经有19人回复
国自然申请面上模板最新2026版出了吗?
已经有19人回复
请教限项目规定
已经有3人回复
基金委咋了?2026年的指南还没有出来?
已经有10人回复
基金申报
已经有6人回复
推荐一本书
已经有13人回复
纳米粒子粒径的测量
已经有8人回复
疑惑?
已经有5人回复
计算机、0854电子信息(085401-058412)调剂
已经有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













)
回复此楼