本帖最后由 小石姐姐 于 2018-4-26 14:25 编辑
Java就业班12第天笔记
//一个表情代表一个知识点
Socket:
对协议进行封装,提供了编程规范接口,来进行相关网络协议;
TCP协议:
传输控制协议
会保证数据传输的准确性,需要验证收方是否收到,速度慢,流量数据大,准确性高;
UDP协议:
用户数据报协议
协议延时小,数据发送速度快,不会检查对方是否会接收,网络不好丢包率高;
IP地址:
二级制数字进制,网络设备的标识
IPv4分隔符 " . "
Ipv6分隔符 " : "
端口号:
标识网络通信的进程逻辑地址,虚拟拟定;
端口号:0~65535
1024前端口号为系统保留端口号;
IP地址 一 端口号 一 传输协议
InetAddress概述:
java.net.InetAddress类:
用于获取IP地址对象;
getLocalHost():获取本机的InetAddress对象
getByName(string):根据主机名或IP的地址值获取主机的InetAddress对象
getLoopbackAddress():获取回环地址的
getHostAddress()返回IP地址字符串
getHostName()获取此IP地址的主机名
UDP协议发送数据:
DatagramSocket()创建对象随机分配端口号
TCP发送方法:
代码演示:
public class 课题02 { public static void main(String[] args) throws IOException { DatagramSocket ds = new DatagramSocket(); String s = "00"; byte[] bys = s.getBytes(); int length = bys.length; InetAddress ip = InetAddress.getByName("An_140"); System.out.println(ip); int port = 2000;// 定义端口 DatagramPacket dp = new DatagramPacket(bys, length, ip, port);// 打包方法 ds.send(dp); ds.close(); }}
TCP接收方法:
方法演示:
public class 课题03 {
public static void main(String[] args) throws IOException {
byte[] byt = new byte[1024];
DatagramSocket ds = new DatagramSocket(2000);//端口号
DatagramPacket dp = new DatagramPacket(byt, byt.length);
ds.receive(dp);
InetAddress in = dp.getAddress();
byte[] byt1 = dp.getData();
int length = dp.getLength();
System.out.println("sender ---> " + in.getHostAddress());
System.out.println(new String(byt1, 0, length));
ds.close();
}
}
UDP发送方法:
代码演示:
public class 课题04 { public static void main(String[] args) throws IOException, IOException { Socket sk = new Socket(InetAddress.getByName("MingY-PC"), 10086); OutputStream os = sk.getOutputStream(); os.write("你好!".getBytes()); sk.close(); }}
UDP发送方法:
代码演示:
public class 课题05 { public static void main(String[] args) throws IOException { ServerSocket ssk = new ServerSocket(1086); Socket sk = ssk.accept(); InputStream is = sk.getInputStream(); byte[] byt = new byte[1024]; int x = is.read(byt); String string = new String(byt, 0, x); System.out.println(string);//打印传输的内容; InetAddress ia = sk.getLocalAddress(); System.out.println(ia);//对面计算机域名 is.close(); }}class A implements Runnable { public void run() { }}
//必须有服务端接收;
Socket:
这是客户端用的
ServerSocket:
这是服务端用的
|
|