起航学习网

- 让每个人都能学到最前沿新知识、新技能!
起航学习网
当前位置: 起航学习网 > 短期培训 > 编程语言 > Java socket编程详解

Java socket编程详解

时间:2022-08-14 14:43:19来源:零基础学Java 作者:Java学习网 已有: 名学员访问该课程

  快捷搜索:javaSocket编程

前言: Java Socket 编程用于在不同 JRE 上运行的应用程序之间进行通信。 Java Socket 编程可以是面向连接的或无连接的。 Socke

Java Socket 编程用于在不同 JRE 上运行的应用程序之间进行通信。

Java Socket 编程可以是面向连接的或无连接的。

Socket 和 ServerSocket 类用于面向连接的套接字编程,DatagramSocket 和 DatagramPacket 类用于无连接的套接字编程。

套接字编程中的客户端必须知道两个信息:

1.服务器的 IP 地址,以及

2.端口号。

在这里,我们将进行单向的客户端和服务器通信。在此应用程序中,客户端向服务器发送消息,服务器读取消息并打印。这里使用了两个类:Socket 和 ServerSocket。Socket 类用于客户端和服务器之间的通信。通过这个类,我们可以读写消息。ServerSocket 类用于服务器端。ServerSocket 类的 accept() 方法会阻塞控制台,直到客户端连接。客户端连接成功后,返回服务端的Socket实例。

套接字类

套接字只是机器之间通信的端点。Socket 类可用于创建套接字。

重要方法

方法 描述
公共输入流 getInputStream() 返回与此套接字连接的 InputStream。
公共输出流 getOutputStream() 返回与此套接字连接的 OutputStream。
公共同步无效关闭() 关闭此套接字

服务器套接字类

ServerSocket 类可用于创建服务器套接字。该对象用于建立与客户端的通信。

重要方法

方法 描述
公共套接字接受() 返回套接字并在服务器和客户端之间建立连接。
公共同步无效关闭() 关闭服务器套接字。

Java Socket 编程示例

创建服务器:

要创建服务器应用程序,我们需要创建 ServerSocket 类的实例。在这里,我们使用 6666 端口号进行客户端和服务器之间的通信。您也可以选择任何其他端口号。accept() 方法等待客户端。如果客户端使用给定的端口号连接,它会返回一个 Socket 实例。

ServerSocket ss=新的 ServerSocket(6666 );  
套接字 s=ss.accept(); //建立连接并等待客户端   

创建客户端:

要创建客户端应用程序,我们需要创建 Socket 类的实例。在这里,我们需要传递服务器的 IP 地址或主机名以及端口号。在这里,我们使用“localhost”,因为我们的服务器在同一系统上运行。

套接字 s=新 套接字(“本地主机” ,6666 );  

让我们看一个简单的 Java 套接字编程,其中客户端发送文本,服务器接收并打印它。

文件:MyServer.java

导入 java.io.*;  
导入 java.net.*;  
公共类 MyServer {   
公共静态无效 主要(字符串[]参数){    
试试{  
ServerSocket ss=新的 ServerSocket(6666 );  
套接字 s=ss.accept(); //建立连接   
DataInputStream dis= new  DataInputStream(s.getInputStream());  
字符串 str=(String)dis.readUTF();  
System.out.println( "message=" +str);  
ss.close();  
}捕捉(异常 e){System.out.println(e);}  
}  
}  

文件:MyClient.java

导入 java.io.*;  
导入 java.net.*;  
公共类 MyClient {   
公共静态无效 主要(字符串[]参数){    
试试{      
套接字 s=新 套接字(“本地主机” ,6666 );  
DataOutputStream dout= new  DataOutputStream(s.getOutputStream());  
dout.writeUTF( "你好服务器" );  
dout.flush();  
dout.close();  
s.close();  
}捕捉(异常 e){System.out.println(e);}  
}  
}  

Java Socket 编程示例(读写双方)

在此示例中,客户端将首先写入服务器,然后服务器将接收并打印文本。然后服务器将写入客户端,客户端将接收并打印文本。步骤继续。

文件:MyServer.java

导入 java.net.*;  
导入 java.io.*;  
类我的 服务器{  
公共静态void  main(String args[])抛出 异常{    
ServerSocket ss=新的 ServerSocket(3333 );  
套接字 s=ss.accept();  
DataInputStream din= new  DataInputStream(s.getInputStream());  
DataOutputStream dout= new  DataOutputStream(s.getOutputStream());  
BufferedReader br= new  BufferedReader( new  InputStreamReader(System.in));   
字符串 str= "" ,str2= "" ;  
而(!str.equals(“停止” )){  
str=din.readUTF();  
System.out.println( "客户说:" +str);  
str2=br.readLine();  
dout.writeUTF(str2);  
dout.flush();  
}  
din.close();  
s.close();  
ss.close();  
}}  

文件:MyClient.java

导入 java.net.*;  
导入 java.io.*;  
类我的 客户{  
公共静态void  main(String args[])抛出 异常{    
套接字 s=新 套接字(“本地主机” ,3333 );  
DataInputStream din= new  DataInputStream(s.getInputStream());  
DataOutputStream dout= new  DataOutputStream(s.getOutputStream());  
BufferedReader br= new  BufferedReader( new  InputStreamReader(System.in));   
字符串 str= "" ,str2= "" ;  
而(!str.equals(“停止” )){  
str=br.readLine();  
dout.writeUTF(str);  
dout.flush();  
str2=din.readUTF();  
System.out.println( "服务器说:" +str2);  
}   
dout.close();  
s.close();  
}}  

以上就是关于“Java socket编程详解”的介绍,大家如果想了解更多相关知识,不妨来关注一下IT培训网的Java视频教程,里面的课程内容由浅到深,通俗易懂,很适合没有基础的小伙伴学习,希望对大家能够有所帮助哦。

文章出自:http://qh.itpxw.cn/peixun/software/2022123619.html

文章标题:Java socket编程详解



免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉

(责任编辑:深圳学历教育网)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
培训学校
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员 用户级别:10 机构名称:IT培训网 联 系 人:罗老师 联系电话:13783581536 联系手机:13783581536 在线客服:起航学习网客服 在 线 QQ:起航学习网客服 电子邮件: 网站域名:http://www.itpxw.cn 注册时间:2016-07-18 11:07 最后登录:2024-02-20 13:02
推荐内容