用Socket实现TCP,UDP通信
来源:互联网 发布:mysql事物与存储引擎 编辑:程序博客网 时间:2024/04/29 10:09
用Socket实现TCP,UDP通信
用Socket实现UDP通信
UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。
public class UDPServer { public static void main(String[] args) { try { DatagramSocket ds = new DatagramSocket(); byte[] buffer = "udp test".getBytes(); DatagramPacket dp = new DatagramPacket(buffer, buffer.length, InetAddress.getByName("localhost"), 8000); // 将localhost换为255.255.255.255可以发送广播,对该局域网内所有机器发送消息 ds.send(dp); ds.close(); } catch (SocketException e) { e.printStackTrace(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}public class UDPClient { public static void main(String[] args) { try { DatagramSocket ds = new DatagramSocket(8000); byte[] buffer = new byte[1024]; DatagramPacket dp = new DatagramPacket(buffer, buffer.length); ds.receive(dp); String ip = dp.getAddress().getHostAddress(); String data = new String(dp.getData(), 0, dp.getLength()); int port = dp.getPort(); System.out.println("ip: " + ip + "; data: " + data + "; port: " + port); ds.close(); } catch (SocketException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}
用Socket实现TCP通信
TCP因为要经过三次“对话”,传输可靠,适用于传输大文件,速度比UDP慢。
public class TCPServer { public static void main(String[] args) { try { ServerSocket server = new ServerSocket(8001); boolean flag = true; while (flag) { final Socket client = server.accept(); System.out.println("Connect to client " + client + " remote add: " + client.getRemoteSocketAddress()); new Thread(new Runnable() { @Override public void run() { try { PrintStream ps = new PrintStream(client.getOutputStream()); BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream())); while (true) { String line = br.readLine(); System.out.println("client: " + line); ps.println(line + " copied"); if ("bye".equals(line)) { break; } } ps.close(); br.close(); client.close(); } catch (IOException e) { e.printStackTrace(); } } }).start(); } } catch (IOException e) { e.printStackTrace(); } }}public class TCPClient { public static void main(String[] args) { try { Socket client = new Socket("localhost", 8001); client.setSoTimeout(10000); BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); PrintStream out = new PrintStream(client.getOutputStream()); BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream())); while (true) { System.out.print("input: "); String str = input.readLine(); out.println(str); if ("bye".equals(str)) { break; } String read = br.readLine(); System.out.println("server: " + read); } input.close(); client.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}
0 0
- 用Socket实现TCP,UDP通信
- Java Socket通信及TCP/UDP实现
- socket通信,tcp,udp通信
- java socket通信 TCP UDP
- php socket通信(tcp/udp)
- socket tcp/ip udp通信
- Java Socket通信(TCP/UDP)
- SOCKET通信程序TCP/UDP
- Android Socket UDP,TCP通信
- Qt Socket通信(UDP&TCP)
- socket实现UDP通信
- android 开发之socket编程 UDP和TCP通信实现!
- android 开发之socket编程 UDP和TCP通信实现
- android 开发之socket编程 UDP和TCP通信实现
- windows下C调用socket实现TCP和UDP通信
- 使用JAVA实现Socket通信,TCP、UDP简析。
- android 开发之socket编程 UDP和TCP通信实现
- 使用JAVA实现Socket通信,TCP、UDP简析。
- Struts2的简单介绍
- RO,RW,ZI 和scatter file详解
- Oracle 11g R2静默安装
- conjugate gradient method (共轭梯度法)
- android-logic_class-SharePreference
- 用Socket实现TCP,UDP通信
- 如何使用MongoDB
- 杭电1232畅通工程
- 几个字符串输入函数比较
- SDK QT4.8 Mingw
- java程序员的自我修炼--冲刺知名互联网企业
- 【Codechef】 February Cook-Off 2015 Zombinatorial
- java通过注解将对象转换为xml
- HDU 1536 S-Nim 博弈求sg函数