【Java学习笔记】UDP客户端/服务器端-阿里云开发者社区

开发者社区> 老朱教授> 正文

【Java学习笔记】UDP客户端/服务器端

简介:
+关注继续查看

客户端:

import java.net.DatagramPacket; 
import java.net.DatagramSocket; 
import java.net.InetAddress; 
import java.net.SocketException; 
import java.net.UnknownHostException; 
import java.io.IOException; 
public class UdpClient { 
    public static void main(String arg[]) { 
        String outstr; 
        if(arg.length >= 1) 
            outstr = arg[0]; 
        else 
            outstr = "count"; 
        try { 
            DatagramSocket socket = new DatagramSocket(); 
            byte outblock[] = outstr.getBytes(); 
            InetAddress address = InetAddress.getLocalHost(); 
            DatagramPacket outpacket = 
                    new DatagramPacket(outblock,outblock.length,address,8765); 
            socket.send(outpacket); 
            System.out.println("Client sent: " + outstr); 
            byte inblock[] = new byte[256]; 
            DatagramPacket inpacket = 
                    new DatagramPacket(inblock,inblock.length); 
            socket.receive(inpacket); 
            String instr = new String(inpacket.getData(),0,inpacket.getLength()); 
            System.out.println("Client got: " + instr); 
            socket.close(); 
        } catch(SocketException e) { 
            System.out.println(e); 
        } catch(UnknownHostException e) { 
            System.out.println(e); 
        } catch(IOException e) { 
            System.out.println(e); 
        } 
    } 
}

服务器端:

import java.net.DatagramSocket; 
import java.net.DatagramPacket; 
import java.net.InetAddress; 
import java.io.IOException; 
import java.util.Date; 
public class UdpServer { 
    public static void main(String arg[]) { 
        DatagramSocket socket = null; 
        int count = 0; 
        try { 
            socket = new DatagramSocket(8765); 
        } catch(IOException e) { 
            System.out.println(e); 
        } 
        while(true) { 
            try { 
                byte block[] = new byte[256]; 
                DatagramPacket inpacket 
                        = new DatagramPacket(block,block.length); 
socket.receive(inpacket); 
                int length = inpacket.getLength(); 
                System.out.println("Length of the data received: " + length); 
   byte inblock[] = inpacket.getData(); 
                String inmsg = new String(inblock,0,length); 
                System.out.println("Server got: " + inmsg); 
                count++; 
                String outmsg; 
                if(inmsg.equals("date")) { 
                    Date date = new Date(); 
                    outmsg = date.toString(); 
                } else if(inmsg.equals("halt")) { 
                    socket.close(); 
                    return; 
                } else if(inmsg.equals("count")) { 
                    outmsg = "Number of messages: " + count; 
                } else { 
                    outmsg = "What is " + inmsg + "?"; 
                } 
                byte outblock[] = outmsg.getBytes(); 
                InetAddress returnaddress = inpacket.getAddress(); 
                int returnport = inpacket.getPort(); 
                DatagramPacket outpacket = new DatagramPacket( 
                        outblock,outblock.length,returnaddress,returnport); 
                socket.send(outpacket); 
            } catch (IOException e) { 
                e.printStackTrace(); 
            } 
        } 
    } 
}

 




本文转自gnuhpc博客园博客,原文链接:http://www.cnblogs.com/gnuhpc/archive/2012/12/17/2822298.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Java Socket服务端客户端通信实例
本文目录 1. Socket是啥 2. 运行机制 3. 代码示例 4. 测试 5. 小结
13 0
MaxCompute客户端(odpscmd)在windows命令行下查询中文乱码问题处理实践
MaxCompute客户端工具是阿里云大数据计算服务MaxCompue产品官方客户端工具,通过客户端工具可以连接MaxCompute项目,完成包括数据管理、数据上下传、作业执行、用户及授权管理等各项操作。
5431 0
客户端和服务器的通信程序|学习笔记
快速学习客户端和服务器的通信程序
25 0
DNS服务配置|学习笔记
快速学习DNS服务配置
30 0
《基于ECS搭建FTP服务》学习笔记
1.远程连接ECS服务器 2.安装vsftpd 3.配置vsftpd 4.客户端测试
463 0
服务端编程示例|学习笔记
快速学习服务端编程示例
39 0
阿里ECS进阶课程学习笔记--基于ECS搭建FTP服务
FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。
156 0
+关注
3546
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载