返回顶部
首页 > 资讯 > 精选 >JAVA之Socket编程方法怎么用
  • 368
分享到

JAVA之Socket编程方法怎么用

2023-07-04 15:07:33 368人浏览 薄情痞子
摘要

这篇文章主要介绍了JAVA之Socket编程方法怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JAVA之Socket编程方法怎么用文章都会有所收获,下面我们一起来看看吧。一、Socket知识1. Sock

这篇文章主要介绍了JAVA之Socket编程方法怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JAVA之Socket编程方法怎么用文章都会有所收获,下面我们一起来看看吧。

一、Socket知识

1. Socket概述

(1)Java最初是作为网络编程语言出现的,它对网络的高度支持,使得客户端和服务器端流畅的沟通成为现实。

(2)在网络编程中,使用最多的就是Socket,每一个实用的网络程序都少不了它的参与。

(3)在计算机网络编程技术中,两个进程或者说两台计算机可以通过一个网络通信连接实现数据的交换,这种通信链路的端点就被称为“套接字”(英文名称也就是Socket)。

(4)Socket是网络驱动层提供给应用程序的一个接口或者说一种机制。

(5)使用物流送快递的例子来说明Socket:

-->发件人将有收货人地址信息的货物送到快递站,发件人不用关心物流是如何进行的,货物被送到收货人所在地区的快递站点,进行配送,收货人等待收货就可以了。

-->这个过程很形象地说明了信息在网络中传递的过程。其中,货物就是数据信息,2个快递站点就是2个端点Socket。

JAVA之Socket编程方法怎么用

(6)信息如何在网络中寻址传递,应用程序并不用关心,只负责准备发送数据和接收数据即可。

2. Socket通信原理

(1)对于编程人员来说,无须了解Socket底层机制是如何传送数据的,而是直接将数据提交给Socket,Socket会根据应用程序提供的相关信息,通过一系列计算,绑定IP及信息数据,将数据交给驱动程序向网络上发送。

(2)Socket的底层机制非常复杂,Java平台提供了一些简单但是强大的类,可以简单有效地使用Socket开发通信程序而无须了解底层机制。

3. java.net

(1)java.net包提供了若干支持基于套接字的客户端/服务器通信的类。

(2)java.net包中常用的类有Socket、ServerSocket、DatagramPacket、DatagramSocket、InetAddress、URL、URLConnection和URLEncoder等。

(3)为了监听客户端的连接请求,可以使用ServerSocket类。

(4)Socket类实现用于网络上进程间通信的套接字。

(5)DatagramSocket类使用UDP协议实现客户端和服务器套接字。

(6)DatagramPacket类使用DatagramSocket类的对象封装设置和收到的数据报。

(7)InetAddress类表示Internet地址。

(8)在创建数据报报文和Socket对象时,可以使用InetAddress类

二、基于tcp协议的Socket编程

1.Socket类和ServerSocket类

(1)java.net包的两个类Socket和ServerSocket,分别用来实现双向安全连接的客户端和服务器端,它们是基于TCP协议进行工作的,工作过程如同打电话的过程,只有双方都接通了,才能开始通话。

(2)进行网络通信时,Socket需要借助数据流来完成数据的传递工作。

(3)一个应用程序要通过网络向另一个应用程序发送数据,只要简单地创建Socket,然后将数据写入到与该Socket关联的输出流即可。对应的,接收方的应用程序创建Socket,从相关联的输入流读取数据即可。

(4)注意:2个端点在基于TCP协议的Socket编程中,经常一个作为客户端,一个作为服务器端,也就是遵循client-server模型。
 

● Socket类

Socket对象在客户端和服务器之间建立连接。可用Socket类的构造方法创建套接字,并将此套接字连接至指定的主机和端口。

(1)构造方法

-->第一种构造方法以主机名和端口号作为参数来创建一个Socket对象。创建对象时可能抛出UnknownHostException或IOException异常,必须捕获它们。

    Socket s = new Socket(hostName,port);

-->第二种构造方法以InetAddress对象和端口号作为参数来创建一个Socket对象。构造方法可能抛出IOException或UnknownHostException异常,必须捕获并处理它们。

   Socket s = new Socket(address,port);

(2)常用方法      
JAVA之Socket编程方法怎么用

● ServerSocket类

ServerSocket对象等待客户端建立连接,连接建立以后进行通信。

(1)构造方法

-->第一种构造方法接受端口号作为参数创建ServerSocket对象,创建此对象时可能抛出IOException异常,必须捕获和处理它。

 ServerSocket ss = new ServerSocket(port);

-->第二种构造方法接受端口号和最大队列长度作为参数,队列长度表示系统在拒绝连接前可以拥有的最大客户端连接数。

   ServerSocket ss = new ServerSocket(port,maxqu);

(2)常用方法

-->Socket类中列出的方法也适用于ServerSocket类。

-->ServerSocket类具有accept()方法,此方法用于等待客户端发起通信,这样Socket对象就可用于进一步的数据传输。


2.使用Socket编程实现登录功能

JAVA之Socket编程方法怎么用

● 实现单用户登录

-->Socket网络编程一般分成如下4个步骤进行:

(1)建立连接。

(2)打开Socket关联的输入/输出流。

(3)从数据流中写入信息和读取信息。

(4)关闭所有的数据流和Socket。

-->使用两个类模拟实现用户登录的功能,实现客户端向服务器端发送用户登录信息,服务器端显示这些信息。

客户端实现步骤:

           1)建立连接,连接指向服务器及端口。

           2)打开Socket关联的输入/输出流。

           3)向输出流中写入信息。

           4)从输入流中读取响应信息。

           5)关闭所有的数据流和Socket。

服务器端实现步骤:

           1)建立连接,监听端口。

           2)使用accept()方法等待客户端发起通信

           3)打开Socket关联的输入/输出流。

           4)从输入流中读取请求信息。

           5)向输出流中写入信息。

           6)关闭所有的数据流和Socket。

-->客户端和服务器端的交互,采用一问一答的模式,先启动服务器进入监听状态,等待客户端的连接请求,连接成功以后,客户端先“发言”,服务器给予“回应”。

示例01:实现传递对象信息。

♥ user类

package cn.bdqn.demo02;import java.io.Serializable;public class User implements Serializable {private static final long serialVersionUID = 1L;private String loginName;private String pwd;public User() {super();}public User(String loginName, String pwd) {super();this.loginName = loginName;this.pwd = pwd;}public String getLoginName() {return loginName;}public void setLoginName(String loginName) {this.loginName = loginName;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}}

♥ LoginServer类

package cn.bdqn.demo02;import java.io.IOException;import java.io.InputStream;import java.io.ObjectInputStream;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;public class LoginServer {public static void main(String[] args) {ServerSocket serverSocket = null;Socket socket = null;InputStream is = null;ObjectInputStream ois = null;OutputStream os = null;try {// 建立一个服务器Socket(ServerSocket),指定端口8800并开始监听serverSocket = new ServerSocket(8800);// 使用accept()方法等待客户端发起通信socket = serverSocket.accept();// 打开输入流is = socket.getInputStream();// 反序列化ois = new ObjectInputStream(is);// 获取客户端信息,即从输入流读取信息User user = (User) ois.readObject();if (user != null) {System.out.println("我是服务器,客户登录信息为:" + user.getLoginName() + ","+ user.getPwd());}// 给客户端一个响应,即向输出流中写入信息String reply = "欢迎你,登录成功";os = socket.getOutputStream();os.write(reply.getBytes());} catch (IOException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();} finally {// 关闭资源try {os.close();ois.close();is.close();socket.close();serverSocket.close();} catch (IOException e) {e.printStackTrace();}}}}

LoginClient类

package cn.bdqn.demo02;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.ObjectOutputStream;import java.io.OutputStream;import java.net.Socket;import java.net.UnknownHostException;public class LoginClient {public static void main(String[] args) {Socket socket = null;OutputStream os = null;ObjectOutputStream oos = null;InputStream is = null;BufferedReader br = null;try {// 建立客户端Socket连接,指定服务器的位置为本机以及端口为8800socket = new Socket("localhost", 8800);// 打开输出流os = socket.getOutputStream();// 对象序列化oos = new ObjectOutputStream(os);// 发送客户端信息,即向输出流中写入信息User user = new User("Tom", "123456");oos.writeObject(user);socket.shutdownOutput();// 接收服务器端的响应,即从输入流中读取信息is = socket.getInputStream();br = new BufferedReader(new InputStreamReader(is));String reply;while ((reply = br.readLine()) != null) {System.out.println("我是客户端,服务器的响应为:" + reply);}} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {try {br.close();is.close();oos.close();os.close();socket.close();} catch (IOException e) {e.printStackTrace();}}}}

示例02:升级演示示例01,实现传递多个对象信息。

user类

package cn.bdqn.demo03;import java.io.Serializable;public class User implements Serializable {private static final long serialVersionUID = 1L;private String loginName;private String pwd;public User() {super();}public User(String loginName, String pwd) {super();this.loginName = loginName;this.pwd = pwd;}public String getLoginName() {return loginName;}public void setLoginName(String loginName) {this.loginName = loginName;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}}

LoginServer类

package cn.bdqn.demo03;import java.io.IOException;import java.io.InputStream;import java.io.ObjectInputStream;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;public class LoginServer {public static void main(String[] args) {ServerSocket serverSocket = null;Socket socket = null;InputStream is = null;ObjectInputStream ois = null;OutputStream os = null;try {// 建立一个服务器Socket(ServerSocket),指定端口8800并开始监听serverSocket = new ServerSocket(8800);// 使用accept()方法等待客户端发起通信socket = serverSocket.accept();// 打开输入流is = socket.getInputStream();// 反序列化ois = new ObjectInputStream(is);// 获取客户端信息,即从输入流读取信息User[] users = (User[]) ois.readObject();for (int i = 0; i < users.length; i++) {System.out.println("我是服务器,客户登录信息为:" + users[i].getLoginName()+ "," + users[i].getPwd());}// 给客户端一个响应,即向输出流中写入信息String reply = "欢迎你,登录成功";os = socket.getOutputStream();os.write(reply.getBytes());} catch (IOException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();} finally {// 关闭资源try {os.close();ois.close();is.close();socket.close();serverSocket.close();} catch (IOException e) {e.printStackTrace();}}}}

LoginClient类

package cn.bdqn.demo03;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.ObjectOutputStream;import java.io.OutputStream;import java.net.Socket;import java.net.UnknownHostException;public class LoginClient {public static void main(String[] args) {Socket socket = null;OutputStream os = null;ObjectOutputStream oos = null;InputStream is = null;BufferedReader br = null;try {// 建立客户端Socket连接,指定服务器的位置为本机以及端口为8800socket = new Socket("localhost", 8800);// 打开输出流os = socket.getOutputStream();// 对象序列化oos = new ObjectOutputStream(os);// 发送客户端信息,即向输出流中写入信息User user1 = new User("Tom", "123456");User user2 = new User("bob", "123456");User user3 = new User("lisa", "123456");User[] users = {user1,user2,user3};oos.writeObject(users);socket.shutdownOutput();// 接收服务器端的响应,即从输入流中读取信息is = socket.getInputStream();br = new BufferedReader(new InputStreamReader(is));String reply;while ((reply = br.readLine()) != null) {System.out.println("我是客户端,服务器的响应为:" + reply);}} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {try {br.close();is.close();oos.close();os.close();socket.close();} catch (IOException e) {e.printStackTrace();}}}}

● 实现多客户端用户登录

JAVA之Socket编程方法怎么用

-->一问一答的模式在现实中显然不是人们想要的。一个服务器不可能只针对一个客户端服务,一般是面向很多的客户端同时提供服务的,但是单线程实现必然是这样的结果。

-->解决这个问题的办法是采用多线程的方式,可以在服务器端创建一个专门负责监听的应用主服务程序、一个专门负责响应的线程程序。这样可以利用多线程处理多个请求。

->客户端实现步骤:

       1)建立连接,连接指向服务器及端口。

       2)打开Socket关联的输入/输出流。

       3)向输出流中写入信息。

       4)从输入流中读取响应信息。

       5)关闭所有的数据流和Socket。

-->服务器端实现步骤:

       1)创建服务器线程类,run()方法中实现对一个请求的响应处理。

       2)修改服务器端代码,让服务器端Socket一直处于监听状态。

       3)服务器端每监听到一个请求,创建一个线程对象并启动。

示例03:升级演示示例02,实现多客户端的响应处理。

user类

package cn.bdqn.demo04;import java.io.Serializable;public class User implements Serializable {private static final long serialVersionUID = 1L;private String loginName;private String pwd;public User() {super();}public User(String loginName, String pwd) {super();this.loginName = loginName;this.pwd = pwd;}public String getLoginName() {return loginName;}public void setLoginName(String loginName) {this.loginName = loginName;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}}

LoginThread

package cn.bdqn.demo04;import java.io.IOException;import java.io.InputStream;import java.io.ObjectInputStream;import java.io.OutputStream;import java.net.Socket;public class LoginThread extends Thread {Socket socket = null;//每启动一个线程,连接对应的Socketpublic LoginThread(Socket socket) {this.socket = socket;}//启动线程,即响应客户请求public void run() {InputStream is = null;ObjectInputStream ois = null;OutputStream os = null;try {//打开输入流is = socket.getInputStream();//反序列化ois = new ObjectInputStream(is);//获取客户端信息,即从输入流读取信息User user = (User)ois.readObject();if(user!=null){System.out.println("我是服务器,客户登录信息为:"+user.getLoginName()+","+user.getPwd());}//给客户端一个响应,即向输出流中写入信息os = socket.getOutputStream();String reply = "欢迎你,登录成功";os.write(reply.getBytes());} catch (IOException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}finally{try {os.close();ois.close();is.close();socket.close();} catch (IOException e) {e.printStackTrace();}}}}

LoginServer类

package cn.bdqn.demo04;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class LoginServer {public static void main(String[] args) {ServerSocket serverSocket = null;try {// 建立一个服务器Socket(ServerSocket)指定端口并开始监听serverSocket = new ServerSocket(8800);// 监听一直进行中while (true) {// 使用accept()方法等待客户发起通信Socket socket = serverSocket.accept();LoginThread loginThread = new LoginThread(socket);loginThread.start();}} catch (IOException e) {e.printStackTrace();}}}

♥ LoginClient1类

package cn.bdqn.demo04;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.ObjectOutputStream;import java.io.OutputStream;import java.net.Socket;import java.net.UnknownHostException;public class LoginClient01 {public static void main(String[] args) {Socket socket = null;OutputStream os = null;ObjectOutputStream oos = null;InputStream is = null;BufferedReader br = null;try {// 建立客户端Socket连接,指定服务器的位置为本机以及端口为8800socket = new Socket("localhost", 8800);// 打开输出流os = socket.getOutputStream();// 对象序列化oos = new ObjectOutputStream(os);// 发送客户端信息,即向输出流中写入信息User user = new User("Tom", "123456");oos.writeObject(user);socket.shutdownOutput();// 接收服务器端的响应,即从输入流中读取信息is = socket.getInputStream();br = new BufferedReader(new InputStreamReader(is));String reply;while ((reply = br.readLine()) != null) {System.out.println("我是客户端,服务器的响应为:" + reply);}} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {try {br.close();is.close();oos.close();os.close();socket.close();} catch (IOException e) {e.printStackTrace();}}}}

♥ LoginClient2类和LoginClient3类

同LoginClient1类一样,创建不同的User对象即可

-->java.net包中的InetAddress类用于封装IP地址和DNS。要创建InetAddress类的实例,可以使用工厂方法,因为此类没有构造方法。

-->InetAddress类中的工厂方法JAVA之Socket编程方法怎么用

-->如果找不到主机,两种方法都将抛出UnknownHostNameException异常。

三、基于UDP协议的Socket编程


TCPUDP
是否连接面向连接面向非连接
传输可靠性可靠不可靠
速度

1.DatagramPacket类和DatagramSocket类

(1)基于TCP的网络通信是安全的,是双向的,如同打电话,需要先有服务端,建立双向连接后,才开始数据通信。

(2)基于UDP的网络通信只需要指明对方地址,然后将数据送出去,并不会事先连接。这样的网络通信是不安全的,所以只应用在如聊天系统、咨询系统等场合下。

(3)数据报是表示通信的一种报文类型,使用数据报进行通信时无须事先建立连接,它是基于UDP协议进行的。

(4)Java中有两个可使用数据报实现通信的类,即DatagramPacketDatagramSocket

(5)DatagramPacket类起到容器的作用,DatagramSocket类用于发送或接收DatagramPacket。

(6)DatagramPacket类不提供发送或接收数据的方法,而DatagramSocket类提供send()方法和receive()方法,用于通过套接字发送和接收数据报。

● DatagramPacket类

(1)构造方法

-->客户端要向外发送数据,必须首先创建一个DatagramPacket对象,再使用DatagramSocket对象发送。

JAVA之Socket编程方法怎么用

(2)常用方法

JAVA之Socket编程方法怎么用

● DatagramSocket类

(1)构造方法

-->DatagramSocket类不维护连接状态,不产生输入/输出数据流,它的唯一作用就是接收和发送DatagramPacket对象封装好的数据报。

JAVA之Socket编程方法怎么用

(2)常用方法

JAVA之Socket编程方法怎么用

2.使用Socket编程实现客户咨询

-->利用UDP通信的两个端点是平等的,也就是说通信的两个程序关系是对等的,没有主次之分,甚至它们的代码都可以完全是一样的,这一点要与基于TCP协议的Socket编程区分开来。

-->基于UDP协议的Socket网络编程一般按照以下4个步骤进行:

   (1)利用DatagramPacket对象封装数据包。

           (2)利用DatagramSocket对象发送数据包。

           (3)利用DatagramSocket对象接收数据包。

           (4)利用DatagramPacket对象处理数据包。

JAVA之Socket编程方法怎么用

-->模拟客户咨询功能,实现发送方发送咨询问题,接收方接收并显示发送来的咨询问题。

发送方实现步骤:

           1)获取本地主机的InetAddress对象。

               2)创建DatagramPacket对象,封装要发送的信息。

               3)利用DatagramSocket对象将DatagramPacket对象数据发送出去。

接收方实现步骤:

      1)创建DatagramPacket对象,准备接收封装的数据。

               2)创建DatagramSocket对象,接收数据保存于DatagramPacket对象中。

               3)利用DatagramPacket对象处理数据。

示例04:发送方发送咨询问题,接收方回应咨询。

♥ Receive类

package cn.bdqn.demo05;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.SocketAddress;import java.net.SocketException;public class Receive {public static void main(String[] args) {DatagramSocket ds = null;DatagramPacket dp = null;DatagramPacket dpto = null;// 创建DatagramPacket对象,用来准备接收数据byte[] buf = new byte[1024];dp = new DatagramPacket(buf, 1024);try {// 创建DatagramSocket对象,接收数据ds = new DatagramSocket(8800);ds.receive(dp);// 显示接收到的信息String mess = new String(dp.getData(), 0, dp.getLength());System.out.println(dp.getAddress().getHostAddress() + "说:" + mess);String reply = "你好,我在,请咨询!";// 显示与本地对话框System.out.println("我  说:" + reply);// 创建DatagramPacket对象,封装数据SocketAddress sa = dp.getSocketAddress();dpto = new DatagramPacket(reply.getBytes(),reply.getBytes().length, sa);ds.send(dpto);} catch (SocketException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {ds.close();}}}

♥ Send类

package cn.bdqn.demo05;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.SocketException;import java.net.UnknownHostException;public class Send {public static void main(String[] args) {DatagramSocket ds = null;InetAddress ia = null;String mess = "你好,我想咨询一个问题。";System.out.println("我说:" + mess);try {// 获取本地主机地址ia = InetAddress.getByName("localhost");// 创建DatagramPacket对象,封装数据DatagramPacket dp = new DatagramPacket(mess.getBytes(),mess.getBytes().length, ia, 8800);// 创建DatagramSocket对象,向服务器发送数据ds = new DatagramSocket();ds.send(dp);byte[] buf = new byte[1024];DatagramPacket dpre = new DatagramPacket(buf, buf.length);ds.receive(dpre);// 显示接收到的信息String reply = new String(dpre.getData(), 0, dpre.getLength());System.out.println(dpre.getAddress().getHostAddress() + "说:"+ reply);} catch (UnknownHostException e) {e.printStackTrace();} catch (SocketException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {ds.close();}}}

关于“JAVA之Socket编程方法怎么用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“JAVA之Socket编程方法怎么用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: JAVA之Socket编程方法怎么用

本文链接: https://lsjlt.com/news/345879.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JAVA之Socket编程方法怎么用
    这篇文章主要介绍了JAVA之Socket编程方法怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JAVA之Socket编程方法怎么用文章都会有所收获,下面我们一起来看看吧。一、Socket知识1. Sock...
    99+
    2023-07-04
  • 基于Java实现Socket编程的方法
    这篇文章主要介绍“基于Java实现Socket编程的方法”,在日常操作中,相信很多人在基于Java实现Socket编程的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”基于Java实现Socket编程的方法...
    99+
    2023-06-29
  • Java中怎么实现Socket编程
    这篇文章给大家介绍Java中怎么实现Socket编程,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。TCP和UDP通信关于socket编程我们有两种通信协议可以进行选择。一种是数据报通信,另一种就是流通信。数据报通信数据...
    99+
    2023-06-17
  • Java Socket编程中对于run的使用方法是什么
    Java Socket编程中对于run的使用方法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java Socket编程在使用的时候有很多语句需要我们注意,其中run...
    99+
    2023-06-17
  • Java使用线程池实现socket编程的方法详解
    目录前言一、一个简单的C/S模型实现1.服务器:2.客户端:二、线程池使用方法1.新建一个线程池2.用Runnable接口实现线程3.创建线程对象并提交至线程池执行三、结合起来四、使...
    99+
    2024-04-02
  • 网络编程之socket的运用
    一,socket用法 socket是什么 ? Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,...
    99+
    2023-01-30
    网络编程 socket
  • JAVA中怎么利用socket进行网络编程
    本篇文章给大家分享的是有关JAVA中怎么利用socket进行网络编程,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、建立服务器类Java中有一个专门用来建立Socket服务器...
    99+
    2023-06-17
  • C++ socket网络编程方法是什么
    本篇内容主要讲解“C++ socket网络编程方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++ socket网络编程方法是什么”吧!功能完成Cpp客户端简单功能,可收发数据。源码#...
    99+
    2023-06-25
  • VB.NET中Socket编程类怎么用
    小编给大家分享一下VB.NET中Socket编程类怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一直以来很想学习Socket编程方面的应用,比如怎样通过Socket编程实现单片机与PC的TCP连接通信。在单片机嵌入网...
    99+
    2023-06-17
  • boost.asio框架系列之socket编程怎么实现
    这篇“boost.asio框架系列之socket编程怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“boost.asi...
    99+
    2023-07-02
  • Java Socket通信Flash编程代码怎么写
    Java Socket通信Flash编程技巧有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java Socket通信在使用的时候有不少的问题,尤其是在小代...
    99+
    2023-06-17
  • Java 中怎么利用Socket编程识别网络主机
    这期内容当中小编将会给大家带来有关Java 中怎么利用Socket编程识别网络主机,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。获取主机地址信息在Java中我们使用InetAddress类来代表目标网络地...
    99+
    2023-06-17
  • Java并发编程之Exchanger方法详解
    简介 Exchanger是一个用于线程间数据交换的工具类,它提供一个公共点,在这个公共点,两个线程可以交换彼此的数据。 当一个线程调用exchange方法后将进入等待状态,直到另外一...
    99+
    2024-04-02
  • Java Socket编程关键代码是什么
    本篇内容介绍了“Java Socket编程关键代码是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!package sterni...
    99+
    2023-06-17
  • python之怎么使用socket
    本篇内容主要讲解“python之怎么使用socket”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python之怎么使用socket”吧!01:OSI模型1)OSI模型包括应用层、表示层、会话层...
    99+
    2023-06-01
  • Java如何使用线程池实现socket编程
    这篇文章主要讲解了“Java如何使用线程池实现socket编程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java如何使用线程池实现socket编程”吧!前言以多个客户端和一个服务端的so...
    99+
    2023-06-29
  • Java网络编程之URL+URLconnection使用方法示例
    目录HTTP GET和POST从URLs到本地文件在java.net包中包含两个有趣的类:URL类和URLConnection类。这两个类可以用来创建客户端到web服务器(HTTP服务器)的连接。下面是一个简单的代码例子:URL url =...
    99+
    2023-05-30
    java urlconnection ava
  • 怎么用Java高并发编程之CountDownLatch
    本篇文章为大家展示了怎么用Java高并发编程之CountDownLatch,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。什么是CountDownLatchCountDownLatch是通过一个计数器...
    99+
    2023-06-15
  • socket编程之bind()函数使用示例详解
    目录正文端口号具体是怎么绑定老代码端口被占用的问题解决正文 当你创建了socket之后,你会想要把这个socket和你本机上的某个端口号(port)进行关联。 端口号是内核用来确认将...
    99+
    2022-11-13
    socket编程bind函数 socket bind
  • Android编程之客户端通过socket与服务器通信的方法
    本文实例讲述了Android编程之客户端通过socket与服务器通信的方法。分享给大家供大家参考,具体如下: 下面是一个demo,Android客户端通过socket与服务器通...
    99+
    2022-06-06
    程之 客户端 服务器 方法 通信 socket Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作