写博客只是为了方便记忆,希望自己能够坚持下去。
在java jdk中,
TCP/IP协议 一般使用 ServerSocket,Socket 来建立网络通讯。
UDP协议 一般使用DatagramSocket,Datagrampacket,MulticastSocket来建立网络通讯。
TCP/IP 通讯协议的优点:通信可靠。保证了数据在传送过程中准确无误,即使在Intent暂时出现堵塞的情况下,TCP也能够保证通讯的可靠。
废话不多说,直接上例子。
Socket服务端:
public static void main(String[] args) {
try {
ServerSocket service = new ServerSocket(8888);// 创建端口8888的监听对象,监听客户请求(端口范围是0~65535)
while (true) {
Socket socket = service.accept();// 阻塞等待客户请求
OutputStream os=socket.getOutputStream(); //实例化一个输出流
os.write("服务端连接成功\n".getBytes("utf-8")); //向客户端输出内容
os.close(); //关闭输出流
socket.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Socket客户端:
public static void main(String[] args) {
try {
Socket sk = new Socket("192.168.1.188", 4800);
sk.setSoTimeout(10000);// 设置请求响应时间
// 另一种请求socket服务端写法
// Socket sk = new Socket();
// sk.connect(new InetSocketAddress("192.168.1.188", 4800), 10000);
BufferedReader br = new BufferedReader(new InputStreamReader(
sk.getInputStream(), "utf-8")); //获取到服务端的输入流
String line = br.readLine();
System.out.println("来自服务端的消息:" + line);
br.close();
sk.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
最后输出结果: