当前位置:首页 > 生活百科

java socket编程例子(java零基础自学)

栏目:生活百科日期:2025-02-23浏览:0

简说

如果要使用Java中的TCP/IP通过网络连接到服务器,则需要创建一个java.net.Socket对象以连接到服务器。如果使用JavaNIO,则还可以在JavaNIO中创建SocketChannel对象。

第一步创建Socket

以下示例代码连接到IP地址为89.53.64.191的服务器上的端口80。该服务器是Web服务器,端口80是Web服务端口。

Socket socket = new Socket("89.53.64.191", 80);

我们也可以像如下示例中使用域名代替IP地址:

Socket socket = new Socket("wyzhang.com", 80);

第二步Socket发送数据

通过Socket发送数据,获取Socket的输出流(OutputStream),示例代码如下:

Socket socket = new Socket("jenkov.com", 80);OutputStream out = socket.getOutputStream(); out.write("some data".getBytes());out.flush();out.close(); socket.close();

代码非常简单,但是想要通过网络将数据发送到服务器端,一定不要忘记调用flush()方法。操作系统底层的TCP/IP实现会先将数据放入一个更大的数据缓存块中,而缓存块的大小是与TCP/IP的数据包大小相适应的。

第三步Socket读取数据

从Socket中读取数据,我们就需要获取Socket的输入流(InputStream),代码如下:

Socket socket = new Socket("jenkov.com", 80);InputStream in = socket.getInputStream(); int data = in.read();//... read more data... in.close();socket.close();

代码也并不复杂,但需要注意的是,从Socket的输入流中读取数据并不能读取文件那样,一直调用read()方法直到返回-1为止,因为对Socket而言,只有当服务端关闭连接时,Socket的输入流才会返回-1,而是事实上服务器并不会不停地关闭连接。假设我们想要通过一个连接发送多个请求,那么在这种情况下关闭连接就显得非常愚蠢。

因此,从Socket的输入流中读取数据时我们必须要知道需要读取的字节数,这可以通过让服务器在数据中告知发送了多少字节来实现,也可以采用在数据末尾设置特殊字符标记的方式连实现。

最后关闭Socket

当使用完Socket后我们必须将Socket关闭,断开与服务器之间的连接。关闭Socket只需要调用Socket.close()方法即可,代码如下:

Socket socket = new Socket("jenkov.com", 80); socket.close();

结语

socket其实也就那么回事,写好输入流输出流,就没有什么问题了,如果有想学习编程的同学可以私信回复 ”学习“ 领取一线大厂Java面试题总结+阿里巴巴泰山手册+各知识点学习思维导+一份300页pdf文档的Java核心知识点总结!

“java socket编程例子(java零基础自学)” 的相关文章

什么牌子的洗发露好用又香(全球十大奢侈香水品牌)

头发油腻,头皮发痒,头屑飞舞……让我们意识到了洗发水的重要性。合适的洗发水还能帮我们解决头皮屑、出油等问题,甚至有些洗发水,香味比香水还迷人,男票一闻就受不了。...

创业板指数怎么交易,创业板指数买卖方法

北京时间5月14日上午5时,MSCI5月半年度指数审议结果正式出炉。MSCI将26只中国A股纳入MSCI中国指数,其中18只为创业板成分股。这是A股创业板公司首...

python编程软件用哪个好(常用python编程软件推荐)

在开始一个新的Python项目时,很容易不做规划直接进入编码环节。花费少量时间,用最好的工具设置项目,将节省大量时间并带来更快乐的编码体验。在理想的世界中,所有...

dr股票是什么意思,一分钟带你了解dr股票

在股市投资之时,我们经常可以看见不少股票前面都会加上DR、XR等前缀,在之前没有遇到这类股票,突然碰见确实会让人产生好奇,同时陌生的股票也会给我们的投资在成一定...

免费卡通字体(免费商用q版字体推荐)

作为一个设计师,在字体版权越来越受重视的情况下,我们当然是希望有一些免费可以商用的字体来帮助我们去完成设计作品的,这样可以避免客户某一天告诉你,说你给他设计的作...

svn密码忘记了怎么办(svn密码找回的方法)

TortoiseSVN算是用的比较多的SVN工具了,当然现在也不少人用GIT了。最近换个电脑,SVN密码忘了,不想麻烦管理员了,自己用了TortoiseSVNP...

make不是内部或外部命令(make命令使用)

有一天,我试图在一个新的Ubuntu系统上编译一个程序,当我试图使用make命令时,它向我抛出一个错误:Theprogram'make'iscurrentlyn...

如何做网络营销推广,文芳阁SEO原创软文代写平台

互联网时代里,人们的生活、购物、娱乐等都离不开互联网,工作也基本上离不开互联网了。也许很多传统企业的业务范围并不在互联网上,但是在日常的办公,自然需要互联网。更...

seo工作内容是什么,seo工作者职责详解

关键词排名查看分析要求每天分别查看网站的关键词,包括企业词,行业词,长尾词的排名变化,并做记录。目的:分析搜索引擎排名变化规率,从而提升关键词排名。竞争对手网站...

tcl电视安装第三方软件的方法,tcl如何解除限制

TCL电视如何安装第三方电视直播应用软件第一种方法利用电视卫视进行安装外装软件:开发应用程序安装:1、准备工作1)SD卡或U盘2)需要安装的软件2、创建恢复文件...