1:网络编程:
2:Socket通信:1) 网络编程就是I/O流,集合,多线程以及(UDP/TCP编程)的综合
2) 三要素: ip,端口,协议
ip:第一个为网络号段,后三个为主机号段,一般是政府机构,256*256*256
前两个为网络号段,后两个为主机号段,一般是学校,256*256
前三个为网络号段,最后一个为主机号段,一般是私人,256
端口:一般是:0~65536,其中0~1024为系统使用
UDP协议: 不安全,效率高,最大为64kb,不需要建立连接
TCP协议: 安全.效率低,文件的大小没有限制,需要客户端和服务器端建立通道连接
1) UDP:发送端:
DatagramSocket ds = new DatagramSocket();
//这个是数据包,里面是数据,以及发送到的IP和端口
DatagramPacket dp = new DatagramPacket(bys,bys.length,Address,port);
ds.send(dp);
ds.close();
接收端:
//需要监听一个端口,来接受文件
DatagramSocket ds = new DatagramSocket(port);
//创建一个byte[] 来保存数据
byte[ ] bys = new byte[1024];
DatagramPacket dp = new DatagramPacket(bys,bys.length);
//这是一个阻塞的方法,一直在等待发送端的发送
ds.receive(dp);
String message = new String(dp.getData(),0,dp.getLength());
ds.close();
2) TCP: 客户端:
Socket s = new Socket(Address,port);
//通过i/o流来进行数据的传输
OutputStream os = s.getOutputStream();
os.write("hello".getBytes());
s.close();
服务器端:
ServerSocket ss = new ServerSocket(port);
//这是一个阻塞的方法,一直等待客户端的连接
Socket s = ss.accept();
InputStream is = s.getInputStream();
byte[ ] bys = new byte[1024];
is.read(bys);
s.close();