Java Socket
来源:互联网 发布:python官网 中文版 编辑:程序博客网 时间:2024/06/16 17:51
Java 中的网络编程主要依靠Socket
TCP:
服务端ServerSocket注册端口port
ServerSocket serverSocket = new ServerSocket(7777);
然后通过accept()方法监听端口,发现请求则返回Socket
Socket socket = serverSocket.accept();
服务端的输出对应客户端的输入,输入对应客户端的输出
InputStream is = socket.getInputStream();
解析输入流得到客户端传递过来的内容
...
然后通过输出流把信息传递给客户端
OutputStream os = socket.getOutputStream();
客户端Socket,需要知道服务端的ip和port,当程序运行时,服务端通过serverSocket.accept()监听到请求,然后服务端生成一个socket同客户端绑定,用以通信
Socket socket = new Socket("localhost", 7777);
客户端的输出流对应服务端的输入流,输入流对应输出流
InputStream is = socket.getInputStream();
解析服务端传递过来的信息...
OutputStream os = socket.getOutputStream();
构建信息传递到服务端...
UDP:
服务端DatagramSocket注册端口port
DatagramSocket socket = new DatagramSocket(7777);
构建数据包:
byte[] buffer = new byte[1000];
DatagramPacket packet = new DatagramPacket(buffer, 1000);
通过socket.receive(packet)方法把接收客户端的信息传递到数据包里面
socket.receive(packet);
System.out.print(new String(buffer, 0, packet.getLength()));
构建数据包,数据包包含客户端发过来的ip地址,和客户端端口号
String str = "welcome";
DatagramPacket packet2 = new DatagramPacket(str.getBytes(), str.length(), packet.getAddress(), packet.getPort());
通过socket.send(packet2)方法把数据包发送到客户端
客户端DatagramSocket不需要注册端口
DatagramSocket socket = new DatagramSocket();
构建数据包,包含服务器目标地址和端口号
String str = "hello world";
DatagramPacket packet = new DatagramPacket(str.getBytes(), str.length(), InetAddress.getByName("localhost"), 7777);
发送
socket.send(packet);
构建数据包,用来接受服务器返回信息
byte[] buffer = new byte[1000];
DatagramPacket packet2 = new DatagramPacket(buffer, 100);
socket.receive(packet2);
- java socket (-) 简单socket
- Java Socket
- java-socket
- java socket
- Java Socket
- JAVA Socket
- Java Socket
- socket(java)
- Java Socket
- Java socket
- java socket
- java socket
- Socket(java)
- Java socket
- Java Socket
- java socket
- Java Socket
- java socket
- OC学习篇之-----单例模式
- 布局动画之LayoutTransition使用
- java web获取文件路径
- 闪客工具:微信本地调试工具
- Filter进行登录验证时循环重定向的解决方法(转)
- Java Socket
- Android开发笔记(二十三)文件对话框FileDialog
- android 一个应用两个入口一个应用两个快捷方式(不同图标显示)
- 这30类CSS选择器 你必须记在脑袋里!
- 记录Controller处理时间
- Javascript、Jquery获取浏览器和屏幕各种高度宽度
- <c:forEach 的常用整理
- java自定义注解入门(2)
- Android 样式开发之shape