socket有两种方式,
一种是Serversocket(服务端)和socket(客户端)的方式(基于tcp/ip的通信方式)
另一种是DatagramSocket(客户端和服务端)的方式(基于udp的通信方式)
第一种服务端需要绑定端口和ip,客户端监听服务端时需要知道服务端的端口和ip(可以不用绑定客户端的端口和ip,系统会自动分配端口给客户端),这种方式适合传输大型文件(几个G的游戏文件之类)这种可靠,但是速度慢
第二种服务端绑定端口和ip,客户端指定自身DatagramSocket的端口,将数据进行packet包的封装,必须要指定目的地(服务端)地址和端口(指定往哪发送包),调用DatagramSocket对象.send(DatagramPacket)方法,服务端监听接口(服务端指定的),接收到包后转换为byte[]用文件流,字符流什么的对数组操作,这种方式适合小型文件(mp3等等),或者缺失一点也无伤大雅的文件(视频),这种速度快,但是不可靠,可能导致缺失少量数据
再说下端口:
两个不同电脑上的软件通过特有的ip地址,端口好进行识别通信,所以需要绑定
一种是Serversocket(服务端)和socket(客户端)的方式(基于tcp/ip的通信方式)
另一种是DatagramSocket(客户端和服务端)的方式(基于udp的通信方式)
第一种服务端需要绑定端口和ip,客户端监听服务端时需要知道服务端的端口和ip(可以不用绑定客户端的端口和ip,系统会自动分配端口给客户端),这种方式适合传输大型文件(几个G的游戏文件之类)这种可靠,但是速度慢
第二种服务端绑定端口和ip,客户端指定自身DatagramSocket的端口,将数据进行packet包的封装,必须要指定目的地(服务端)地址和端口(指定往哪发送包),调用DatagramSocket对象.send(DatagramPacket)方法,服务端监听接口(服务端指定的),接收到包后转换为byte[]用文件流,字符流什么的对数组操作,这种方式适合小型文件(mp3等等),或者缺失一点也无伤大雅的文件(视频),这种速度快,但是不可靠,可能导致缺失少量数据
再说下端口:
两个不同电脑上的软件通过特有的ip地址,端口好进行识别通信,所以需要绑定