-
InetAddress是没有构造方法的,也就是不能new一个新的对象查看全部
-
服务器端编码查看全部
-
客户端实现步骤 1.定义发送信息 2.创建DatagramPacket,包含将要发送的信息 3.创建DatagramSocket 4.发送数据查看全部
-
服务器端实现步骤 1.创建DatagramSocket,指定端口号; 2.创建DatagramPackt 3.接受客户端发送的数据信息 4.读取数据查看全部
-
Socket编程 一、网络基础知识 两台计算机要通过网络进行通信,必须具备:a、唯一的标识(IP地址); b、需要共同的语言(协议); c、辨别不同应用程序(端口号)。 1、IP地址: 每台计算机的唯一标识,用来区分网络中的不同主机,是两台主机进行网络通信必不可少的。IPv4 2、协议: a、TCP/IP协议:目前世界上应用最为广泛的协议。是以TCP和IP为基础的不同层次上多个协议的集合。 也称为:TCP/IP协议族 或者 TCP/IP协议栈。 b、TCP: Transmission Control Protocol 传输控制协议 c、IP :Internet Protocol 互联网协议 d、TCP/IP模型(网络分层):1、物理层;网线。。。 2、数据链路层 3、网络层 4、传输层:TCP/IP协议 5、应用层:HTTP超文本传输协议、FTP文件传输协议、SMTP简单邮件传送协议、Telnet远程登录服务。 3、端口号: a、用于区分不同的应用程序; b、端口号范围为0-65535,其中0-1023为系统所保留; c、IP地址和端口号组成了所谓的Socket,Socket是网络上运行的程序之间双向通信链路的终结点,是TCP和UDP的基础。 d、常用端口号-- http: 80; ftp; 21; telnet; 23。 JAVA中得网络支持 针对网络通信的不同层次,Java提供的网络功能有四大类: 1、InetAddress:用于标识网络上的硬件资源。(IP地址) 2、URL:统一资源定位符---通过URL可以直接读取或写入网络上得数据。 3、Sockets:使用TCP协议实现网络通信的Socket相关的类。 4、Datagram:使用UDP协议,将数据保存在数据报中,通过网络进行通信查看全部
-
这个很重要查看全部
-
基于UDP的多线程实现多客户端通信 服务器端: DatagramSocket socket=new DatagramSocket(8818); byte[] data=new byte[1024]; System.out.println("****服务器启动,等待客户端连接****"); int count=1; while(true){ DatagramPacket packet=new DatagramPacket(data, data.length); socket.receive(packet); ServerThread serverThread=new ServerThread(packet, socket); serverThread.start(); System.out.println("客户端数量:"+count++); 服务器线程处理类: public class ServerThread extends Thread { DatagramPacket packet; DatagramSocket socket; public ServerThread(DatagramPacket packet, DatagramSocket socket) { super(); this.packet = packet; this.socket = socket; } public void run(){ //获取客户端信息 byte[] data=packet.getData(); String info1=new String(data, 0, packet.getLength()); System.out.println("客户端说:"+info1); //响应客户端 InetAddress address=packet.getAddress(); int port=packet.getPort(); byte[] data1="欢迎您!".getBytes(); DatagramPacket packet1=new DatagramPacket(data1, data1.length, address, port); } }查看全部
-
IP地址和端口号组成了所谓的Socket,Socket是网络上运行的程序之间双向通信链路的终点,是TCP和UDP的基础。查看全部
-
通信Socket实现UDP 编程 使用的操作类: 1.DatagramPacket 表示数据包 DatagramPacket(byte[] buf, int length) 用于接收数据包 DatagramPacket(byte[] buf, int length, InetAddress address, int port) 用于发送数据包 getAddress() 用于获取地址 getPort() 用于获取端口号 2.DatagramSocket:进行端到端通信的类,用来表示发送和接受数据报包的套接字 receive(DatagramPacket p) 从此套接字接收数据报包 send(DatagramPacket p) 从此套接字发送数据报包 服务器端实现步骤(基于UDP的用户登录): 1、创建DatagramSocket,指定端口号 2、创建DatagramPacket 3、接受客户端发送的数据信息 4、读取数据 客户端实现步骤 1.定义发送信息 2.创建DatagramPacket,包含将要发送的信息 3.创建DatagramSocket 4.发送数据查看全部
-
多线程服务器 应用多线程服务器与多客户端之间的通信基本步骤查看全部
-
基于TCP协议的SOCKET通信,实现用户登录 Socket通信模型查看全部
-
通信Socket实现TCP编程 Socket服务端的创建 1.创建ServerSocket对象,绑定监听端口 2.通过accept()方法监听客户端请求 3.连接建立后,通过输入流读取客户端发送的请求信息 4.通过输出流向客户端发送响应信息 5.关闭相关资源 Socket客户端的创建 1.创建Socket,指定要连接的服务器的地址和端口号 2.连接建立后,通过输出流向服务器端发送请求信息 3.通过输入流获取服务器响应的信息 4.关闭相应的资源 多线程服务器: 应用多线程来实现服务器与多客户端之间的通信 基本步骤: 1、服务器端创建ServerSocket,循环调用accept()等待客户端连接 2、客户端创建一个socket并请求和服务器端连接 3、服务器端接受客户端的请求,创建socket与客户端建立专线连接 4、建立连接的两个socket在一个单独的线程上对话 5、服务器端继续等待新的连接 ServerSocket常用方法: ServerSocket(int port)——创建并绑定到特定端口的服务器套接字 accept()——侦听并接受到此套接字的连接 close()——关闭此套接字 getInetAddress()——得到ServerSocket对象绑定的IP地址。如果ServerSocket对象未绑定IP地址,返回0.0.0.0。 getLocalPort()——返回此套接字在其上侦听的端口 Socket常用方法: Socket(InetAddress address, int port)——创建一个套接字并将其连接到指定ip地址的指定端口号 Socket(String host, int port)——创建一个套接字并将其连接到指定主机上的指定端口号 close()——关闭此套接字 getInetAddress()——返回套接字连接的地址 getInputStream()——返回此套接字的输入流 getOutputStream——返回此套接字的输出流查看全部
-
服务器端: //1.创建一个服务器端Socket,即ServerSocket,指定绑定的端口,并监听此端口 ServerSocket serverSocket=new ServerSocket(8888); Socket socket=null; //记录客户端的数量 int count=0; System.out.println("***服务器即将启动,等待客户端的连接***"); //循环监听等待客户端的连接 while(true){ //调用accept()方法开始监听,等待客户端的连接 socket=serverSocket.accept(); //创建一个新的线程 ServerThread serverThread=new ServerThread(socket); //启动线程 serverThread.start(); count++;//统计客户端的数量 System.out.println("客户端的数量:"+count); InetAddress address=socket.getInetAddress(); System.out.println("当前客户端的IP:"+address.getHostAddress());查看全部
-
服务器线程处理类: public class ServerThread extends Thread { // 和本线程相关的Socket Socket socket = null; public ServerThread(Socket socket) { this.socket = socket; } //线程执行的操作,响应客户端的请求 public void run(){ InputStream is=null; InputStreamReader isr=null; BufferedReader br=null; OutputStream os=null; PrintWriter pw=null; try { //获取输入流,并读取客户端信息 is = socket.getInputStream(); isr = new InputStreamReader(is); br = new BufferedReader(isr); String info=null; while((info=br.readLine())!=null){//循环读取客户端的信息 System.out.println("我是服务器,客户端说:"+info); } socket.shutdownInput();//关闭输入流 //获取输出流,响应客户端的请求 os = socket.getOutputStream(); pw = new PrintWriter(os); pw.write("欢迎您!"); pw.flush();//调用flush()方法将缓冲输出 } catch (IOException e) { e.printStackTrace(); }finally{ //关闭资源 try { if(socket!=null) socket.close(); } catch (IOException e) { e.printStackTrace(); } } } }查看全部
-
Socket 通信模型查看全部
举报
0/150
提交
取消