A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.UDP传输

UDP传输,传输的是数据包;有丢包的可能,因为不验证对方是否收到。

常用于聊天软件,比方说QQ的聊天功能用的UDP。

UDP建立:
建立发送端:

class Send
{
        public static void main(String[] args)
{
        DatagramSocket ds = new DatagramSocket(8888);建立Socket并指定端口
        String text = "1111111111111";
        char[] arr = text.toCharArray();
        DatagramPacket dp = new DatagramPacket(arr,arr.length,InetAddress.getByName("192.168.1.122"),10000);
        ds.send(dp);//发送数据
        ds.close();

}
}

程序中的InetAddress是IP地址的对象,可以通过getHostAddress和getHostName拿到IP地址和主机名

接收端:
class Receive
{
        public static void main(String[] args)
{
        DatagramSocket ds = new DatagramSocket(10000);创建接收端Socket
        char[] arr = new char[1024];
        DatagramPacket dp = new DatagramPacket(arr,arr.length);
        ds.receive(dp);
        String ip = dp.getAddress().getHostAddress();
        int port = dp.getPort();
        System.out.println("ip:"+ip+";port:"+port);
        String text =new String (dp.getData(),0,dp.getLength());
        System.out.println(text);
       
}
}



2.TCP传输

TCP两端的Socket,一个是客户端(Socket),一个是服务器(ServerSocket)

TCP连接是可靠的连接,连接是会经过三次握手,确保连接的正确。

客户端:
class Client
{
        public static void main(String[] args)
{
        Socket s = new Socket(8888);
        OutputStream os = s.getOutputStream();
        os.write("111111111".getBytes());
        os.close();
}
}

服务器:
class Serve
{
        public static void main(String[] args)
{
        ServerSocket ss = new ServerSocket(10000);
        Socket s = ss.accept();
        String ip = s.getAddress().getHostAddress();
        System.out.println("ip:"+ip);
        InputStream is = s.getInputStream();
        byte[] arr = new byte[1024];
        int len = is.read(arr);
        System.out.println(new String(arr,0,arr.length));
        ss.close()
        s.close()
       
}
}


有不对的地方,大家指正

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马