首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java入门(18)-- 网络通信

18.2.2 ServerSocket类 java.net包中的ServerSocket类用于表示服务器套接字,其主要功能是等待来自网络上的“请求”,它可通过指定的端口来等待连接的套接字。...ServerSocket(int port, int backlog):利用指定的backlog创建服务器套接字,并将其绑定到指定的本地端口号上 ServerSocket(int port, int...这种情况适用于计算机上有多快网卡和多个IP地址的情况,可以明确规定ServerSocket在哪块网卡或哪个IP地址上等待客户的连接请求。...如果网络上没有数据发送过来,receive()方法也没有阻塞,肯定是程序有问题,大多数情况下是因为使用了一个被其他程序占用的端口号。...广播电台需要在指定的波段和频率上广播信息,收听者也要将收音机调到指定的波段和频率,才可以收听广播内容。

67320

Android之TCP服务器编程android 之TCP客户端编程

关于网络通信:每一台电脑都有自己的ip地址,每台电脑上的网络应用程序都有自己的通信端口,张三的电脑(ip:192.168.1.110)上有一个网络应用程序A(通信端口5000),李四的电脑(ip:192.168.1.220...再指定一下发送的端口号(通信端口8000),信息就发到了李四电脑的网络应用程序B上。 TCP--一种网络通信方式而已。...好了我就把现在的下载到手机上 ? 这样一打开这个软件便启动了监听,按钮,文本框什么的还没弄 好现在打开电脑上的网络调试助手 ?...对了有一点说错了是在 android 之TCP客户端编程   上的socket 其实socket这个类可以理解为(只要服务器和客服端建立连接就会建立socket),我们可以通过操作socket类中的方法得到我们想要的东西...感觉解释的也不咋的,不懂 ? ? ? ?

6.8K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Nio】01--初始Nio组件

    只能支持一次的socket服务端 此种情况下,客户端发送一次数据以后,服务器端就会停止 ?...catch (IOException e) { e.printStackTrace(); } } } 现在继续改进,支持多线程, 即伪异步方式 在伪异步的情况下...多路:实际上指的就是多个Tcp连接,即上述的多个管道 IO复用:将多个Tcp连接(管道)统一交给一个Selector选择器进行管理。最后,统一使用buffer将数据写入硬盘。...cpu放弃了使用权,不能干其他事情 Nio 不管有没有拿到数据都会立即返回结果,如果返回的结果没有数据,会循环请求数据,如果拿到了数据,程序继续执行。...,在单线程的情况下维护多个不同的channel Channel:客服端传输的数据都必须经过管道,统一注册到selector中管理 Buffer:BIO是按照字节来写入,效率低下。

    41310

    Java的NIO的实现与BIO的优势

    从这里我们很容易想到这种模式的服务器的缺陷,首先,它一次只能接收一个接收一个客户端的请求,要是有多个,没办法,在处理完前面的连接前,它是没办法往下执行的,那么如果前面连接一直不传送消息过来,就像我们刚刚将程序阻塞在...// =====①:这个地方是伪代码,现在假设方法执行后serverSocket在没有客户端连接的情况下也会继续执行 serverSocket.setNoBlock(true);...执行下去之后判断分两叉,一叉是没有客户端连接过来的情况,那么就在②拿出socketList,看看之前连接的socket里面有没有哪个给我发数据,有的话就来处理一下。...另外一叉就是在有客户端连接上来的情况了,首先我们在③处将socket也设置为非阻塞的,然后将这个socket添加到SocketList当中,然后继续拿出socket,看看有没有哪个socket给我发数据...什么是Selector,这里举例做解释: 在一个养鸡场,有这么一个人,每天的工作就是不停检查几个特殊的鸡笼,如果有鸡进来,有鸡出去,有鸡生蛋,有鸡生病等等,就把相应的情况记录下来,如果鸡场的负责人想知道情况

    30140

    Netty学习之读netty权威指南(一)

    轮询注册在其上的Channel,当发现某个或者多个Channel处于“就绪状态”后(accept接收连接事件、connect连接完成事件、read读事件、write写事件),从阻塞状态返回就绪的Channel...,也就是读写操作立即返回,无论有没有数据。...//因为对于服务器来说,有时它不止一块网卡,而我们系统一定是通过指定的IP和端口进行通信的,所以服务端所使用的IP和端口都需要定义配置文件。...//那么在平常测试时,在没有指定IP的情况下,ServerSocket到底邦定到哪里了?...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    21210

    socket上的Pass错误

    你提到的可能是编程逻辑中使用了 pass 语句,导致某些异常情况未被正确处理,或者可能与 socket 操作本身的错误有关。...知道可以发送字符串“ERROR”或可能是-1之类的字符串,但这些字符串也可能是命令输出的一部分。有没有更好的方法通过socket发送错误或异常。...解决方法使用错误代码此方法适用于需要将错误代码发送到客户端并在客户端中使用该代码来确定错误情况的情况。...使用异常此方法适用于需要将异常对象发送到客户端并在客户端中使用该异常对象来确定错误情况的情况。...使用 pass 忽略错误会隐藏潜在的问题。要有效调试:确保正确处理所有可能的异常。不要使用 pass 忽略重要的错误信息。打印或记录详细的错误信息,便于诊断问题。

    9510

    Android查缺补漏(IPC篇)-- 进程间通讯之Socket简介及示例

    网络上的两个程序通过一个双向的通讯链接实现数据交换,这个链接的一端称为一个Socket,它本身可以支持传输任意的字节流。...在java中通过Socket和ServerSocket两个类可以很方便的实现Socket通讯,ServerSocket用于服务器端,Socket是建立网络连接时使用的。...="android.permission.INTERNET"/> 上process属性也就会变成两个进程效果和两个APP是一样的) 不要忘记在客户端Socket...但同时我们也发现,Socket在使用起来相对来说比较繁琐,而且不支持RPC也就是说我们无法通过获取某个对象就可以在本地方便的远程调用服务端的方法。Socket的使用场景一般是用于网络数据交换。

    1.1K60

    Android查缺补漏(IPC篇)-- 进程间通讯之Socket简介及示例

    网络上的两个程序通过一个双向的通讯链接实现数据交换,这个链接的一端称为一个Socket,它本身可以支持传输任意的字节流。...在java中通过Socket和ServerSocket两个类可以很方便的实现Socket通讯,ServerSocket用于服务器端,Socket是建立网络连接时使用的。...="android.permission.INTERNET"/> 上process属性也就会变成两个进程效果和两个APP是一样的) 不要忘记在客户端Socket...但同时我们也发现,Socket在使用起来相对来说比较繁琐,而且不支持RPC也就是说我们无法通过获取某个对象就可以在本地方便的远程调用服务端的方法。Socket的使用场景一般是用于网络数据交换。

    38340

    python下使用epoll

    不然的话, 这个程序只能在其他程序停止使用这个端口之后的1到2分钟后才能执行. 行 11: 绑定socket到这台机器上所有IPv4地址上的8080端口....阻塞本身不会影响其他线程的工作. 多线程阻塞socket模式代码清晰, 但是有几个缺陷, 可能很难确保线程间资源共享工作正常, 可能在只有一个CPU的机器上效率低下. C10K(单机1万连接问题!)...因为异步socket是非阻塞的, 我们可以不采用多线程. 所有的事情都可以在一个线程里面完成. 虽然这种模式有它需要面对的问题, 它对于特定程序来说还是不错的选择....一般情况下不产生异常....()) epoll.close() serversocket.close() 因为比较类似, 状态触发经常用在转换采用select/poll模式的程序上面, 边沿触发用在程序员不需要或者不希望操作系统来管理事件状态的场合上面

    2.8K10

    Android查缺补漏(IPC篇)-- 进程间通讯之Socket简介及示例

    网络上的两个程序通过一个双向的通讯链接实现数据交换,这个链接的一端称为一个Socket,它本身可以支持传输任意的字节流。...在java中通过Socket和ServerSocket两个类可以很方便的实现Socket通讯,ServerSocket用于服务器端,Socket是建立网络连接时使用的。...="android.permission.INTERNET"/> 上process属性也就会变成两个进程效果和两个APP是一样的) 不要忘记在客户端Socket...但同时我们也发现,Socket在使用起来相对来说比较繁琐,而且不支持RPC也就是说我们无法通过获取某个对象就可以在本地方便的远程调用服务端的方法。Socket的使用场景一般是用于网络数据交换。

    1.4K10

    tcpip协议, http协议,socket通讯demo,socket和http的区别,socket和http优势,socket和http适用范围,流、帧、包、位的区别

    也就说,如果不指定MSG_PEEK标志,每次读取操作将消耗一个报文。 3、为什么 其实,这种不同是由TCP和UDP的特性决定的。...--允许应用程序完全使用网络--> android.permission.INTERNET"/> 4.1使用TCP协议通信 android..., // 如果客户端没有发送数据,那么该线程就停滞不继续 Socket socket = serverSocket.accept(); //...WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上。”...(9)FTP协议: 文件传输协议(File Transfer Protocol, FTP)是TCP/IP网络上两台计算机传送文件的协议,FTP是在TCP/IP网络和INTERNET上最早使用的协议之一,

    18911

    java---网络编程

    19.1 Socket基础 socket(套接字) , 各种开发语言提供出来专门用于网络编程的API(接口),在传输层上的协议进行的编程tcp udp , 通过端口号来进行通信,实现点对点之间的通信...(服务端的Socket , 客户端的Socket) ServerSocket 服务器套接字 Socket 套接字 (客户端使用它) 数据的传输使用的是流Stream。...thread.setDaemon(true); thread.start(); } } 19.4 心跳机制 心跳机制 主机和从机之间一种状态检测机制,从机在固定的频率上向主机发送特殊的信息...,如果不刷,信息发送失败 out.flush(); } 19.7 心跳机制和正常数据通信的综合使用 //服务器代码 import java.io.*; import java.net.ServerSocket...\r\n读取会阻塞 ,因为readLine() 读取一行,一行的标准就是看末尾有没有\r\n String info = reader.readLine();

    25630

    网络协议:一文搞懂Socket套接字

    本篇内容包括:Socket 套接字的简介、Socket 套接字的分类、Java 中的 Socket 即 java.net.ServerSocket、java.net.Socket 的使用,以及Java...使用套接字 Scoket 编程的Demo。...该服务并不能保证数据传输的可靠性,数据有可能在传输过程中丢失或出现数据重复,且无法保证顺序地接收到数据。数据报套接字使用UDP进行数据的传输。...由于数据包套接字不能保证数据传输的可靠性,对于有可能出现的数据丢失情况,需要在程序中做相应的处理。...因此,其主要是在编写自定义底层协议的应用程序时使用,例如各种不同的 TCP/IP 实用程序 三、Java 中的 Socket Java 中对 Socket 的使用是基于两个类 java.net.ServerSocket

    2.7K21

    面试系列之-通信协议中的tcp与udp(JAVA基础)

    在网络上通信的双方只有遵守相同的协议,才能正确地交流信息,就像人们交谈时要使用同一种语言一样,如果谈话里使用不同的语言,就会造成双方都不知所云,交流就被迫中断。...,TCP在滑动窗口的基础上提供流量控制,防止较快主机致使较慢主机的缓冲区溢出; ⑤失序处理:作为IP数据报来传输的TCP分片到达时可能会失序,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层...服务器进程就处于LISTEN(收听)状态,等待客户的连接请求。...UDP 协议基本上是IP协议与上层协议的接口。UDP协议适用端口分别运行在同一台设备上的多个应用程序。...) throws Exception { ServerSocket serverSocket = new ServerSocket(8888); System.out.println

    22210

    做播客,AI永远取代不了人

    [3]节目话题从衣食住行到人生哲学,从娱乐八卦到严肃时事,可谓无所不包。...毕竟,AI播客生成工具依赖预设话题自动生成模拟人类对话的音频,对于不同的听众群体,它们往往依赖相同的数据库资源。在工具与数据源相同的情况下,如何打造独一无二的节目成为了亟待解决的问题。...若真人主播提供的信息密度或深度不及AI,便可能在和AI的较量中落于下风。至于那些因个人魅力而备受喜爱的主播,其地位难以撼动。...不过实际上,播客节目往往是上述三种类型以不同比例交织融合的产物,并非能够简单约化为某一类别。因此,AI的影响也更为多维和复杂。...实际上,这与播客的收听场景,其往往作为一种背景音存在有着重要联系。统计数据显示,仅有3%的中文播客听众会全神贯注地收听,而不分心于其他事务。

    9410

    Android实战 粗略实现一个简单的CS结构聊天室的功能

    当使用传统BufferedReader的readLine()方法,在该方法返回成功之前,线程会被阻塞,程序无法执行。...android.permission.INTERNET"/> 加入访问网络的权限 3.迭代器用法 (1)Iterator...it=MyServer.SockList.iterator();使用Iterator()要求返回一个Iterator (2)使用next()获取序列中的下一个元素 (3)使用hasNext()检查序列中时候还有元素...(4)使用remove()将迭代器返回的元素删除 4.多线程使用 5.Handler,MessageQueue,Looper原理 1)Looper:每一个线程只有一个Looper,它负责管理MessageQueue...,所以非常合适多个相同的线程来处理同一份资源的情况下,把cpu代码和数据分开,形成清晰的模型,较好的体现了面向对象的思想 缺点:编程稍微复杂,如果要访问当前线程,必须使用Thread.currentThread

    1K50

    初学者第72节网络编程-ServerSocket(一)

    引言 上一节讲解socket的基本使用,这一节来顺带着讲讲socket的一个自认为重要的设置选项的方法,哈哈,多多少少会在今后的开发中使用到。还是比较好用的。...java提供了一个ServerSocket类表示服务器Socket。服务器Socket在服务器上运行,监听入站ftp连接。每个服务器Socket监听服务器上的一个特定端口。...如果把port设置为0时,属于匿名端口,也就是系统会随机分配一个端口的,一般不建议这么使用。并且匿名端口是有着特殊的意义与用图,后期再来讲解。...这个构造方法和上面一个构造方法类似使用,只多了一个本地ip的参数,一般情况下是本机有多个网卡的情况下使用。...前面基本上都使用到了,其它的方法基本上和socket里面的方法一模一样的使用这里就不过多的讲解了。

    64251

    关于java流的几个概念:IO、BIO、NIO、AIO,有几个人全知道?

    这也是jdk1.4之前的唯一选择,依赖于ServerSocket实现,即一个请求对应一个线程,如果线程数不够连接则会等待空余线程或者拒绝连接。...所以用这种方式,在高并发情况下效率是很低的,也不可靠,一般只应用于连接数比较小且固定架构的应用,但api也比较容易使用。...它是基于事件驱动的,采用了Reactor模式,它使用一个线程管理所有的socket通道,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。...它的特点是要不断主动地去询问数据有没有处理完,一般只适用于连接数目较大但连接时间短的应用,如聊天应用等。 AIO 新的IO2.0,即NIO2.0,jdk1.7开始应用,叫做异步不阻塞的IO。...复杂 可靠性 非常差 高 高 吞吐量 低 高 高 java提供的NIO的api使用比较复杂,一般建议使用像netty这样的框架,而不要使用jdk自带的api。

    73880
    领券