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

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

简说

如果要使用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核心知识点总结!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/21143.html

(0)
nan
上一篇 2021-09-04
下一篇 2021-09-04

相关推荐

  • 参数配置规格全对比(苹果12配置参数表)

    iphone12/12mini/12pro/12promax区别参数配置规格全对比iPhone12终于来了,第一次提供四种不同型号,iPhone12mini、iPhone12属于一个序列,iPhone12Pro、iPhone

    2021-12-11
    0
  • 仓鼠能吃鱼干吗(仓鼠吃小鱼干会上火吗)

    仓鼠这种小宠物非常的可爱,小小的一只,在笼子里动来动去非常的好玩。仓鼠一般会吃饲料,但是偶尔也要喂养一些动物蛋白、水果等新鲜食物,保证营养丰富。那么可不可以给仓鼠喂小鱼干吃呢?仓鼠能吃鱼干吗能吃,但是得买无添加剂的,没有

    2021-09-07
    0
  • 如何禁用win10自动更新驱动(win10系统启动不了修复方法)

    Windows自动更新经常会自动更新,但是有些更新由于与系统兼容性不好,所以会出现蓝屏,影响工作。今天小编整理的这篇教程,从服务、注册表、组策略、计划任务中,全方位设置,彻底关闭win10自动更新。一、Windows服务中关闭win10自动更新(一)

    2021-09-17 科技
    0
  • 删除的文件如何快速恢复(电脑文件误删怎么恢复)

    关于删除的文件如何恢复,这里小编教给大家几个方法。第一种:回收站还原回收站是操作系统提供的一个文件夹,用来临时存放用户删除的各种数据,存放在回收站的数据是都可以被还原回来的。因此数据删除到回收站后,我们是还有“后悔”机会的,这时候直接

    2021-12-11
    0
  • pythonui框架哪个最好用(python漂亮gui界面模板)

    你知道嘛由于Python越来越受欢迎,并得到广泛采用,它将成为2020年流行起来的编程语言。在牢固掌握Python编程基础之后,初学者面临的下一个挑战是构建用户界面。幸运的是,有很多Python框架专

    2022-01-11
    0
  • Win7对比win10的3大优势(win7 win10哪个好用)

    自从win10推出以来,win7的地位一降再降,不再是微软的心头肉!而且,微软还曾经因为win7系统市场占有率过高,一度主动去“缩减”win7市场。虽然也没怎么成功就是了,毕竟去年win7在国内占有率都还有50%左右。而win10在

    2021-12-11 科技
    0

发表回复

登录后才能评论