网络编程Socket
来源:互联网 发布:横道图用什么软件编制 编辑:程序博客网 时间:2024/05/22 08:14
Java Socket
概念
- 端口:确定应用程序
- IP:确定电脑主机
- udp:无连接(接收端没开启,发送端发送数据,会丢包)
- 一个包最大64k,字节数组长度最大是64*1024
- tcp传输分客户端和服务端
udp发送端代码写法
//创建udp服务,通过DatagramSocket创建对象DatagramSocket ds = new DatagramSocket();//确定数据,并封装成数据包byte[] buf = "Hello".getBytes();DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("127.0.0.1"),10000);//通过Socket服务,把已有的数据包发送出去ds.send(dp);//关闭资源ds.close();
udp接收端代码写法
//创建udp服务,接受应用程序开启10000端口监听DatagramSocket ds = new DatagramSocket(10000);//接收应用程序开启10000端口监听//创建数据包byte[] buf = new byte[1024];//用buf数组存储接收到的数据DatagramPacket dp = new DatagramPacket(buf,buf.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+"::"+data+"::"+port);//关闭资源ds.close();//一般不关,一直挂机,再配合while(true)
tcp客户端代码写法
//创建Socket服务,并指定要连接的主机和端口Socket s = new Socket("127.0.0.1",10002);//获取socket流中的输出流OutputStream os = s.getOutputStream();//发送数据os.write("Hello".getBytes());//读取来自服务端的反馈信息InputStream is = s.getInputStream();byte[] buf = new byte[1024];int len = is.read(buf);system.out.println(new String(buf,0,len));//关闭客户端s.close();
tcp服务端代码写法
//创建ServerSocket服务,并监听一个端口ServerSocket ss = new ServerSocket(10002);//通过accept方法获取客户端对象Socket s = ss.accept();String ip = s.getInetAddress().getHostAddess();//使用客户端对象的读取流获取发送过来的数据InputStream is = s.getInputStream();byte[] buf = new byte[1024];int len = is.read(buf);system.out.println(new String(buf,0,len));//反馈信息给客户端OutputStream os = ss.getOutputStream();os.write("Yes,I get!".getBytes);//关闭服务端(一般只关客户端,不关服务端)s.close();ss.close();
阅读全文
0 0
- 网络编程---Socket编程
- 网络编程:Socket编程
- 网络编程(Socket编程)
- 网络socket编程指南
- 网络socket编程指南
- 网络Socket编程
- 网络socket编程指南
- 网络socket编程指南
- 网络socket编程指南
- 网络socket编程指南
- 网络编程 socket
- 网络编程 socket
- 网络socket编程指南
- 网络socket编程指南
- 网络socket编程指南
- 网络socket编程
- 网络socket编程指南
- 网络socket编程指南
- Java获取Redis的日志信息和动态监控信息
- Hibernate继承映射
- Canvas 最佳实践(性能篇)
- windows10 在vs2017(2010)上配置opencv3.2.4和opencv2.4.9
- Entity Framework
- 网络编程Socket
- 设计模式-结构型软件设计模式(三)
- Android自定义view:拖拽选择按钮
- 前端优化的技巧
- 设计模式-结构型软件设计模式(四)
- 深层克隆和浅层克隆
- Vim技能修炼教程(12)
- 设计模式-行为型软件设计模式(一)
- Perl语言入门——Perl变量简介