java网络编程
来源:互联网 发布:跟阿铭学linux 编辑:程序博客网 时间:2024/05/21 05:21
在现有的网络中,网络通讯的方式主要有两种:
1、 TCP(传输控制协议)方式
2、 UDP(用户数据报协议)方式
而java在对于这两种网络编程中提供了封装类:
TCP:ServerSocket和Socket
UDP:DatagramSocket和DatagramPacket
TCP和UDP的区别:
TCP:
在等待连接的时候是阻塞的,等带客服端连接上之后,才向下面执行,一般都是多线程执行的,在服务器连接多过的时候,处理的速度就会非常慢,建议设置线程的优先级!
UDP:
//服务器端
1.创建DatagramSocket,指定端口号
2.创建DatagramPacket
3.接收客服端发送的数据信息
4.读取数据
//客户端
1.定义发送的信息
2.创建DatagramPacket 包含要发送的数据
3.创建DatagramSocket
4.发送数据包
UDPClient: //创建DatagramSocket DatagramSocket datagramSocket=new DatagramSocket(); //定义发送的信息 InetAddress address=InetAddress.getByName("a"); int port=8888; byte[] data="你好客服端".getBytes(); //创建DatagramPacket 包含要发送的数据 DatagramPacket datagramPacket=new DatagramPacket(data,data.length,address,port); //发送数据包 datagramSocket.send(datagramPacket);UDPServer: //创建DatagramSocket,指定端口号 DatagramSocket socket=new DatagramSocket(8888);//指定端口号 byte[] data=new byte[1024]; //创建DatagramPacket DatagramPacket datagramPacket=new DatagramPacket(data,data.length); //接收数据 socket.receive(datagramPacket);//会一直阻塞,知道接收到数据报 System.out.println(new String(data,0,datagramPacket.getLength()));TCPServcer: ServerSocket serverSocket=new ServerSocket(8888); System.out.println("服务器已经启动"); while(true){ Socket scoket= serverSocket.accept(); new ServerThread(scoket).start(); }ServerThread: private Socket socket; public ServerThread(Socket socket){ this.socket=socket; } @Override public void run() { try { InputStream inputStream=socket.getInputStream(); InputStreamReader inputStreamReader=new InputStreamReader(inputStream); BufferedReader bufferedReader=new BufferedReader(inputStreamReader); String str=null; while((str=bufferedReader.readLine())!=null){ System.out.println("客服端说:"+str); } } catch (IOException e) { e.printStackTrace(); } }TCPClient: Socket socket=new Socket("a",8888); PrintWriter printWriter=new PrintWriter(socket.getOutputStream()); printWriter.write("服务器你好!+1"); printWriter.flush(); printWriter.close(); socket.close();
个人建议,个人理解
0 0
- 【网络编程】JAVA网络编程
- java网络编程:网络基本概念
- Java网络编程-UDP编程
- Java 高层网络编程
- Java网络编程2
- Java网络编程3
- Java网络编程4
- Java网络服务器编程
- java网络编程1
- java网络编程2
- JAVA网络编程
- Java网络服务器编程
- java网络编程
- Java 高层网络编程
- Java 高层网络编程
- Java网络服务器编程
- Java网络编程
- JAVA网络编程
- cocos2dx3.9 lua继承Layer
- Linux操作系统 (RHEL 7/CentOS 7)
- 1025:To the max(DP)
- Hibernate工作原理
- 配置Android studio 项目上传jcenter 时 gradle 报以下错误
- java网络编程
- C,C#,WebService结构体数组返回问题--谐解
- linux内核启动过程追踪
- 设置隐藏Activity,避免闪烁
- ubuntu 分辨率问题and 显卡驱动安装
- 专访DeepID发明者孙祎:关于深度学习与人脸算法的深层思考
- java学习笔记(二)java继承特性总结
- Unity3D学习笔记(6)—— 飞碟射击游戏
- HDU 4337 King Arthur's Knights 【哈密顿模板题】