package cn.com; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; //TCP客户端 //关于TCP的客户端和服务端的比喻(我的理解): //比如在很大的宾馆的前台,有许许许多多电话,这个前台就是一个TCP服务端。 //当有预定房间的电话(客户端)打进来的时候,就会有一个前台的电话与它接通。 //即代码Socket s = ss.accept();返回值是一个Socket()即一个电话。这个时候这两部电话是对等的。 //它们都有自己的getOutputStream和getInputStream。只不过,一边的输出是对应于另一边的输入,反之亦然。 //UDP和TCP的区别: //UDP不需要建立连接,但是TCP要先建立连接再通讯。 //正是这个原因:UDP直接往外面扔数据包,但是TCP在建立连接后,就有流!然后通过流来进行通讯,比如getOutputStream和getInputStream方法。 //这样理解的话就简单多了 public class TCPSender { public static void main(String[] args) throws Exception { Socket clientSocker=new Socket("192.168.1.111", 7759); OutputStream os=clientSocker.getOutputStream(); String message="lalala"; byte [] messageArray =message.getBytes(); os.write(messageArray);//利用Socket得到的OutputStream发送消息 InputStream is=clientSocker.getInputStream();//利用Socket得到的InputStream得到服务端返回的消息 byte [] buff=new byte[1024]; int number=is.read(buff); String temp=new String(buff,0,number); System.out.println("客户端收到的信息:"+temp); } }