java学习之网络编程之echo程序】的更多相关文章

服务端的实现 package com.gh.echo; import java.io.*; import java.net.*; /** * echo服务器程序 * 实现 不断接收字符串 ,然后返回一个echo+字符串 * 服务程序写成多线程 * @author ganhang * */ public class EchoServerDemo { public static void main(String[] args) { try { ServerSocket ss = new Server…
一.UDP UDP的全称是User Datagram Protocol(用户数据报协议),是一种无连接的不安全的传输协议, 传输数据时发送方和接收方无需建立连接,所以是不安全的. 发送时不建立连接直接发送,发送后不关注接受方能否接到.UDP只负责发出去,后续的事情与之无关. 1).使用UDP发送和接受数据的过程: 1接收数据: 1.1创建数据包实例,用于接收数据.(指定接收方IP,端口) 1.2创建接收容器 1.3将接收容器封装成包 1.4接收包 1.5处理包(可以看做拆包,将包中数据拿出来)…
上次的是上传TXT文件,这次上传的是图片.同样,上传成功需要反馈给客户端. 区别: TXT文件用记事本打开,我们可以看得懂,所以用了缓冲字符流,对通道内的字节流进行包装了. 而图片用记事本打开,我们看不懂,所以就用缓冲字节流,只需要把通道内的字节流转换成高效字节流就可以了. 客户端: public class ClineDemo { public static void main(String[] args) throws IOException { // 创建Socket对象 Socket s…
TCP传输 Socket和ServerSocket 建立客户端和服务器 建立连接后,通过Socket中的IO流进行数据的传输 关闭socket 同样,客户端与服务器是两个独立的应用程序 TCP协议发送和接收数据的思路图解: TCP传输-客户端思路 1:建立客户端的Socket服务,并明确要连接的服务器. 2:如果连接建立成功,就表明,已经建立了数据传输的通道.就可以在该通道通过IO进行数据的读取和写入.该通道称为Socket流,Socket流中既有读取流,也有写入流. 3:通过Socket对象的…
TCP实现多用户上传文件: 需要同时给多用户上传文件,这样就得用多线程来实现. 实际上,这样的话,上传的先后顺序和速度就跟客户端的带宽有关:带宽够,就容易抢占到线程的执行权: 首先,创建个线程类:(这个线程类执行的是服务器的功能) 线程类代码: public class UserThread implements Runnable { // 构造方法接收对象 private Socket s; public UserThread(Socket s) { this.s = s; } public…
TCP练习: 1.客户端键盘录入,服务器输出文本文件 客户端代码: public class ClientDemo { public static void main(String[] args) throws IOException { // 创建socket对象 Socket s = new Socket("172.19.12.233", 10010); // 创建键盘输入流,用转换流包装成字符流 BufferedReader br = new BufferedReader(new…
UDP传输 两个类:DatagramSocket与DatagramPacket(具体看API) A:建立发送端,接收端. B:建立数据包. C:调用Socket的发送接收方法. D:关闭Socket. E:发送端与接收端是两个独立的运行程序. UDP传输-发送端思路 UDP发送数据: A:创建Socket发送端对象 B:创建数据报包(把数据打包) C:调用Socket对象发送数据报包 D:释放资源(底层是IO流) UDP传输-发送端代码 public static void main(Strin…
Socket Socket套接字: 网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字. Socket原理机制: 通信的两端都有Socket. 网络通信其实就是Socket间的通信. 数据在两个Socket间通过IO传输. Socket套接字图解:…
上次所写的代码中,客户端和服务器端所进行的数据传输所用的是字节流. 优化: A:这次,为了高效,对这个字节流通过转换流来进行包装,包装成高效字符流. B:这次,传输的数据是通过键盘录入的数据. 服务器端代码: /* TCP协议: 服务器端 */ public class ServerDemo { public static void main(String[] args) throws IOException { // 创建socket接收端对象监听 ServerSocket ss = new…
UDP协议的输出端: /* UDP发送数据: A:创建Socket发送端对象 B:创建数据报包(把数据打包) C:调用Socket对象发送数据报包 D:释放资源(底层是IO流) */ public class NewSend { public static void main(String[] args) throws IOException { // A:创建Socket发送端对象 DatagramSocket ds = new DatagramSocket(); // B:创建数据报包(把数…