上次我们讲到了UDP的通信,今次我们来聊聊TCP通信
1.TCP比较安全,因为他有确认-反馈-再确认的三次握手机制
2.具体实现
//客户端
public class Client{
public static void main(String[]args){
//首先还是先创建一个发送器
Socket client =new Socket();
//TCP和UDP不同,TCP传输是凭借流来传的,所以要创建流对象,又由于是向外发送,所以是Output流.又需要将发送器和流连接上,故有了下面这句话
OutputStream os=client.getOutputStream("localhost",7711);
//将想要写的话通过流写出去
byte[]buf="内容".getBytes();
os.write(buf);
//随手关门,从近到远
os.close();
client.close();
}
}
//接收端,老规矩不能写在一个包里
public class Server{
public static void main(String[]args){
//接收端创建的对象于发送端不同,区别于UDP,但是要写端口这一点是一样的
ServerSocket server=new ServerSocket(7711);
//创建一个监视器,怎么样才能和发送器扯上关系呢
Socket client=server.accept();
//发送端是output,你接收就得是input了,得建立一个和监视器有关,而且可以监视流的动向的一个对象
InputStream is=client.getInputStream();
//流来了用什么接呢,还是得建立一个数组啊
byte[]buf=new byte[1024];
//读到了,也装起来了
int length=is.read(buf);
//系统说他收到了,真的吗?亮出来吧
String str=new String(buf,0,length);
System.out.println(str);
//出结果了.异常自己处理一下.服务器一般是不关的,但是我们只用一次,就这样吧
}
}
2.又回到了老问题,我想多次使用咋办,把功能体写到 while中即可实现
3.那多线程又如何解决?
其实和之前差不多,实现Runnable方法,找代理,或者继承Thread类
抓住不变的东西即可