一、网络: 将不同区域的电脑连接到一起, 局域网、城域网、广域网
二、IP :位置
端口:区分数据流向的软件 0-65535
不要使用1024以下的端口 ,每一个协议拥有自己的端口,在同一个协议下端口不能重复
<FTP:21>
HTTP:80
三、URL:统一资源定位符
四、资源的传输协议
TCP:TCP(transfer control protocol) 打电话
面向连接、安全、可靠,效率低
UDP: UDP(UserDatagramProtocol ) 发送短信
非面向连接、不安全、数据可能丢失 、效率高
五、UDP编程: DatagramSocket DatagramPacket
1、服务器:
a)、创建服务器 指定端口
b)、准备接收容器 字节数组 +封装成数据包
c)、接收数据
d)、分析数据
e)、释放资源
2、客户端:
a)、创建客户端 指定端口
b)、准备数据 字节数组
c)、封装成数据包 需要指定包发送 的地址+端口 即服务器地址与端口
d)、发生数据
e)、释放资源
六、TCP编程:ServerSocket Socket
1、服务器:
a)、创建服务器 指定端口
b)、等待客户端连接
c)、分析接收数据
2、客户端:
a)、创建客户端 +指定服务器地址 +端口
b)、发送数据
代码:
public class Client {
public static void main(String[] args) throws Exception {
//创建socket对象
Socket socket = new Socket("127.0.0.1",10001);
//获取键盘输入
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("输入一个字符串:");
//创建输出流
BufferedWriter bufout= new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
//获取输入流
BufferedReader bufIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line = null;
while((line=br.readLine())!=null){
bufout.write(line);
bufout.newLine();
bufout.flush();
String str = bufIn.readLine();
System.out.println("server:"+str);
}
br.close();
socket.close();
}
}
public class Server {
public static void main(String[] args) throws IOException {
//监听10001端口
ServerSocket ss = new ServerSocket(10001);
System.out.println("server start..");
Socket s = ss.accept();
String ip = s.getInetAddress().getHostAddress();
System.out.println(ip+"...connected");
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
//创建一个输出流
BufferedWriter bufout= new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
String line= null ;
while ((line = br.readLine()) != null) {
//反转字符串
StringBuffer sb = new StringBuffer(line);
String str = sb.reverse().toString();
//将反转后的字符输出到客户端
bufout.write(str);
bufout.newLine();
bufout.flush();
}
}
}