(2)Java网络-----端口
netstat -an查看端口状态
不同应用程序在不同端口进行监听
单工:BP机
无线寻呼系统中的被叫用户接收机。由超外差接收机、解码器、控制和显示等部分组成。
它从基站发射的寻呼信号和干扰中选择出所需接收的有用信号,恢复成原来寻呼本机的基带信号,并产生音响(或振动)和显示数字(或字母、汉字)消息。
半双工:对讲机
全双工:两个半双工的结合
Java网络编程原理:
客户端和服务器半双工通信实例:
1.工程结构:
2.服务器端:
/*
* 这是第一个服务器程序,在9999端口监听,可以接收从客户端发来的信息
* */
package mytest1;
import java.io.*;
import java.net.*;
public class myserver1 {
public myserver1() {
try {
//在9999端口监听
ServerSocket ss=new ServerSocket(9999);
System.out.println("我是服务器,在9999端口监听,等待连接....");
//等待某个客户端来连接
//返回一个socket连接
Socket s=ss.accept();
//读取s中传递的数据
InputStreamReader isr=new InputStreamReader(s.getInputStream());
BufferedReader br=new BufferedReader(isr);
String info=br.readLine();
System.out.println("服务器接收到了"+info);
PrintWriter pw=new PrintWriter(s.getOutputStream(),true);
pw.println("我是服务器,已经接收到信息!");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new myserver1();
}
}
3.客户端:
/**
* 这是客户端,可以连接服务器
*/
package test1;
import java.io.*;
import java.net.*;
public class myclient1 {
public myclient1() {
try {
//socket()连接某个服务器,127.0.0.1表示服务器IP,9999表示服务器监听端口
Socket s=new Socket("127.0.0.1",9999);
//如果s连接成功,就可以发送数据给服务器
//我们通过pw,向s写数据,true表示即时刷新
PrintWriter pw=new PrintWriter(s.getOutputStream(),true);
pw.println("你好吗,我是客户端!");
//读取s中传递的数据
InputStreamReader isr=new InputStreamReader(s.getInputStream());
BufferedReader br=new BufferedReader(isr);
String res=br.readLine();
System.out.println("我是客户端,收到了服务器恢复的信息!"+res);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new myclient1();
}
}