java,tcp的socket,udp的数据报

来源:互联网 发布:大数据工程师干不过35 编辑:程序博客网 时间:2024/05/22 17:04
tcp,socket通信

由服务器、客户端组成,需要建立连接,
server示例:
package com.server;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.ServerSocket;import java.net.Socket;public class T_server{    public static void main(String[] args) throws Exception    {        ServerSocket ss = new ServerSocket(5466);        while(true){            Socket s = ss.accept();            InputStream isA = s.getInputStream();            BufferedReader br = new BufferedReader(new InputStreamReader(isA));            String str = null;            System.out.println("end:--------------------\n");            while((str = br.readLine()) != null){                System.out.println(str);            }            System.out.println("start:------------------\n");            s.close();        }    }}
client示例:
package com.client;import java.io.BufferedWriter;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.net.Socket;public class T_client{    public static void main(String[] args) throws Exception    {        Socket s = new Socket("127.0.0.1", 5466);        OutputStream osA = s.getOutputStream();        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(osA));        bw.write("aaaaaaaaaaaaaaa\n");        bw.flush();        bw.write("bbbbbbbbbbbbbbb\n");        bw.flush();        s.close();    }} 


无连接的udp,数据报通信
udp
数据报是网络上传输的独立数据包,数据报是否能到达目录,到达的时间、顺序、内容都没有保障。
server示例:
package com.server;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;public class T_server2{    public static void main(String[] args) throws Exception    {        DatagramSocket ds = new DatagramSocket(1234);        byte[] buf = new byte[13];        DatagramPacket dp = new DatagramPacket(buf, 13);        while(true){            ds.receive(dp);            InetAddress addr = dp.getAddress();            int port = dp.getPort();            byte[] data = dp.getData();                        System.out.println("start:-----------");            System.out.println(addr.getHostAddress());            System.out.println(port);            System.out.println(new String(data));            System.out.println("end:-----------\n");        }    }}
client示例:
package com.client;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;public class T_client2{        public static void main(String[] args) throws Exception    {        DatagramSocket ds = new DatagramSocket();                byte[] buf = "ccccccccccccc".getBytes();        int length = buf.length;//13        InetAddress addr = InetAddress.getLocalHost();        DatagramPacket dp = new DatagramPacket(buf, length, addr, 1234);        ds.send(dp);        ds.close();    }}