UDP client,UDP server, TCP server, TCP client
2015-11-03 22:38
519 查看
UDP server
UDP client
TCP server
Tcp client
import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetSocketAddress; import java.net.SocketException; /** * udpserver * 监听端口 10001 * @author GXF * */ public class UdpSocketServer { private DatagramSocket serverSocket; public UdpSocketServer(int port){ init(port); } public void init(int port){ InetSocketAddress serverSocketAddress = new InetSocketAddress( port); try { serverSocket = new DatagramSocket(serverSocketAddress); } catch (SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //监听端口 public void startListen(){ byte buff[] = new byte[1024]; DatagramPacket receivePacket = new DatagramPacket(buff, buff.length); while(true){ try { serverSocket.receive(receivePacket); String message = new String(buff, 0, receivePacket.getLength()); System.out.println("message from client = " + message); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public static void main(String args[]){ UdpSocketServer udpSocketServer = new UdpSocketServer(10001); udpSocketServer.startListen(); } }
UDP client
import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.SocketException; import java.net.UnknownHostException; /** * Udp客户端 DatagramSocket * @author GXF * */ public class UdpSocketClient { //客户端套接字 private DatagramSocket clientSocket; //构造方法 public UdpSocketClient(String ip, int port){ init(ip, port); } /** * 初始化套接字 * @param ip * @param port */ public void init(String ip, int port){ // try { // InetAddress serverAddress = InetAddress.getByName(ip); // InetSocketAddress serverSocketAddress = new InetSocketAddress(serverAddress, port); try { clientSocket = new DatagramSocket(); } catch (SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); } // } catch (UnknownHostException | SocketException e) { // e.printStackTrace(); // } } /** * 使用UDP向服务器发送消息 * @param ip * @param message */ public void sendMessage(String message){ byte buff[] = message.getBytes(); DatagramPacket packetToSend; try { packetToSend = new DatagramPacket(buff, buff.length, InetAddress.getByName("127.0.0.1"), 10002); clientSocket.send(packetToSend); //发送数据包 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { String serverIp = "127.0.0.1"; int port = 10001; UdpSocketClient clientSocket = new UdpSocketClient(serverIp, port); String message = "hahahahah"; clientSocket.sendMessage(message); } }
TCP server
import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; public class TcpServer { private ServerSocket serverSocket; TcpServer(int port){ try { serverSocket = new ServerSocket(port); } catch (IOException e) { e.printStackTrace(); } } //开始监听端口 public void start(){ while(true){ try { Socket clientSocket = serverSocket.accept(); InputStream is = clientSocket.getInputStream(); byte buff[] = new byte[1024]; int length = -1; StringBuilder sb = new StringBuilder(); // while((length = is.read(buff)) > 0){ length = is.read(buff); sb.append(new String(buff, 0, length)); // }//while System.out.println("message received: " + sb.toString()); clientSocket.close(); } catch (IOException e) { e.printStackTrace(); } } } public static void main(String args[]){ int port = 10002; TcpServer tcpServer = new TcpServer(port); tcpServer.start(); } }
Tcp client
import java.io.IOException; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket; import java.util.Scanner; public class TcpClient { private Socket socket; private int port; private TcpClient(int port){ // try { this.port = port; // } catch (IOException e) { // e.printStackTrace(); // } } /** * 发送消息 * @param message */ public void sendMessage(String message){ try { Socket socket = new Socket(InetAddress.getByName("127.0.0.1"), port); OutputStream os = socket.getOutputStream(); byte buff[] = message.getBytes(); os.write(buff); os.flush(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } public void inputMessage(){ Scanner scanner = new Scanner(System.in); while(true){ String message = scanner.nextLine(); sendMessage(message); } } public static void main(String[] args) { int port = 10001; TcpClient client = new TcpClient(port); client.inputMessage(); } }
相关文章推荐
- Android - 使用Volley请求网络数据
- iOS—OC——TCP/UDP HTTP
- 利用domain access建立子站点网络
- ASP.NET WebAPI 08 Message,HttpConfiguration,DependencyResolver
- 【网络】IP地址
- 调试代码的方法--将网络获取到的数据存储到文件中,然后打开文件看结果。
- TCP/IP协议
- 初识TCP:传输控制协议
- 解决虚拟机vmware中REDHAT不能上网问题。
- failed to open stream: HTTP request failed!
- HTTP/1.1协议的curl 返回 HTTP/1.1 100 Continue 加上header 加上body
- iOS开发网络数据之AFNetworking使用
- iOS开发网络数据之AFNetworking使用
- CentOS网络配置
- 判断当前网络
- HttpClient教程 基本原理
- VMware网络连接模式:Bridged、NAT、Host-only区别
- HttpClient教程 前言
- 在IIS上启用Gzip压缩(HTTP压缩)
- 【UKIEPC2015 C】【STL set map stringstream】Conversation Log 网络审查 被所有人都说过的话 map套set法+人哈希法