A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. import java.io.*;
  2. import java.net.*;
  3. class TcpClient       
  4. {
  5.         public static void main(String[] args) throws Exception
  6.         {
  7.                 //创建客户端的Socket服务,指定目的主机和端口。
  8.                 Socket s = new Socket("192.168.1.106",10003);
  9.                 //为了发送数据,应获取Socket服务里的输出流
  10.                 OutputStream out = s.getOutputStream();
  11.                 out.write("给你发点数据".getBytes());
  12.                 s.close();
  13.         }
  14. }

  15. class TcpServer
  16. {
  17.         public static void main(String[] args) throws Exception
  18.         {
  19.                 //1.建立服务端的socket服务。并监听一个端口
  20.                 ServerSocket ss = new ServerSocket(10003);
  21.                 //2.通过accept()方法获取连接过来的客户端对象
  22.                 Socket s = ss.accept();
  23.                 String ip = s.getInetAddress().getHostAddress();
  24.                 System.out.println(ip+"||||");
  25.                 //3.获取到该客户端对象的读取流来读取发过来的数据
  26.                 InputStream in = s.getInputStream();
  27.                 byte[] buf = new byte[1024];
  28.                 int len = in.read(buf);
  29.                 System.out.println(new String(buf,0,len));
  30.         }
  31. }
  32. /*
  33. H:\testjava>javac TcpDemo.java
  34. H:\testjava>java TcpServer
  35. 192.168.1.106||||
  36. 给你发点数据

  37. H:\testjava>
  38. */
复制代码


评分

参与人数 1技术分 +1 收起 理由
FFF + 1 淡定

查看全部评分

3 个回复

倒序浏览
没有阻塞,程序是自然结束。
回复 使用道具 举报
FFF 发表于 2014-2-7 16:52
没有阻塞,程序是自然结束。

哦,明白了
回复 使用道具 举报
楼主3f说的没错,“没有阻塞,程序自然结束”
如果想要服务器不停的接受客户端内容,可以加个while循环,小小例子如下:
while(true){
       byte[] buf=new byte[1024];
       DatagramPacket dp=new DatagramPacket(buf,buf.length);
       ds.receive(dp);
       String ip=dp.getAddress().getHostAddress();
       String data=new String(dp.getData(),0,dp.getLength());
       System.out.println("ip地址:"+ip+"....对话:"+data);
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马