网络编程

来源:互联网 发布:博微预算软件 编辑:程序博客网 时间:2024/06/05 18:39

1:网络编程:

1) 网络编程就是I/O流,集合,多线程以及(UDP/TCP编程)的综合

2) 三要素: ip,端口,协议

ip:第一个为网络号段,后三个为主机号段,一般是政府机构,256*256*256

前两个为网络号段,后两个为主机号段,一般是学校,256*256

前三个为网络号段,最后一个为主机号段,一般是私人,256

端口:一般是:0~65536,其中0~1024为系统使用

UDP协议: 不安全,效率高,最大为64kb,不需要建立连接

TCP协议: 安全.效率低,文件的大小没有限制,需要客户端和服务器端建立通道连接


2:Socket通信:

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();