导航:首页 > 编程语言 > javasocket编程阻塞

javasocket编程阻塞

发布时间:2022-06-02 13:24:00

java socket 阻塞和非阻塞 会对数据传输有什么影响

阻塞会导致你的程序停在这里不往下走 非阻塞时,你的程序可以一边干其他事情(比如显示个进度条),以便等数据过来。

Ⅱ java编程中,Socket通信是怎么实现的

java编程对于Socket之间的通信过程如下:

服务端往Socket的输出流里面写东西,客户端就可以通过Socket的输入流读取对应的内容。Socket与Socket之间是双向连通的,所以客户端也可以往对应的Socket输出流里面写东西,然后服务端对应的Socket的输入流就可以读出对应的内容。下面来看一些服务端与客户端通信的例子:

publicclassServer{

publicstaticvoidmain(Stringargs[])throwsIOException{
//为了简单起见,所有的异常信息都往外抛
intport=8899;
//定义一个ServerSocket监听在端口8899上
ServerSocketserver=newServerSocket(port);
//server尝试接收其他Socket的连接请求,server的accept方法是阻塞式的
Socketsocket=server.accept();
//跟客户端建立好连接之后,我们就可以获取socket的InputStream,并从中读取客户端发过来的信息了。
Readerreader=newInputStreamReader(socket.getInputStream());
charchars[]=newchar[64];
intlen;
StringBuildersb=newStringBuilder();
while((len=reader.read(chars))!=-1){
sb.append(newString(chars,0,len));
}
System.out.println("fromclient:"+sb);
reader.close();
socket.close();
server.close();
}

}
客户端代码
Java代码publicclassClient{

publicstaticvoidmain(Stringargs[])throwsException{
//为了简单起见,所有的异常都直接往外抛
Stringhost="127.0.0.1";//要连接的服务端IP地址
intport=8899;//要连接的服务端对应的监听端口
//与服务端建立连接
Socketclient=newSocket(host,port);
//建立连接后就可以往服务端写数据了
Writerwriter=newOutputStreamWriter(client.getOutputStream());
writer.write("HelloServer.");
writer.flush();//写完后要记得flush
writer.close();
client.close();
}

}

Ⅲ java SOCKET编程 ,如何跳出accept() 阻塞

首先你这个逻辑就有问题
你如果想先将数据发给客户端,那么必须要让客户端先连接到服务端,你才能进行发送对吧
那么你就可以把这个总是细分,第一步,客户端连接到用器,这时候你的服务器才能向客户端发送数据库,第二步客户端处理完服务端的数据,再次向服务端发送数据

另外,你服务端应该用多线程进行交互
即一发现有客户端连接
就立马启动一条线程来处理请求

Ⅳ java socket 服务端接收数据阻塞。

服务器端处理的太慢了吧?

Ⅳ JAVA socket传送文件一直被阻塞

是不能等于-1撒..

他在等你那边给他写东西呢..

你应该在服务器端结束的时候给他写个东西过去..让他知道已经结束了..

还有什么问题HI我哈

但是read方法本身不就有告知客户端文件传送结束的功能么 当读到文件结束符的时候它会返回-1的啊

确实读文件结束就是-1...
但是你的客户端读的不是文件啊..服务器才是读文件..所以服务器能正常结束..
你的客户端读的服务器发来的东西..服务器读文件结束后就不给客户端发信息了..
而客户端的read()方法是阻塞式方法..意思就是服务器不传给他数据他就会一直等..

所以还是那样..在服务器端结束的时候给客户端发个消息说明已经结束了..客户端读到这个结束标志的时候也就不要再往文件里面写东西了..也结束..这样你的程序就正确了..

Ⅵ JAVA socket聊天室程序 readLine()阻塞

对每一个客户端都建立一个线程来接收消息,发消息与接消息不要在同一线程上,那就才能解决阻塞问题。一般新手用socket编程,大都是遇到阻塞问题不懂解决,导致了收发消息失败。其实网上socket聊天通讯的例子大把,遇到问题查查看,思考下就能明白了。

有问题欢迎提问,满意请采纳,thx.

阅读全文

与javasocket编程阻塞相关的资料

热点内容
下载钉钉app是什么 浏览:222
什么服务器支持云播放 浏览:835
什么app进货牛排比较好 浏览:107
为什么鸿蒙用安卓app 浏览:82
手相面相pdf 浏览:374
军犬不听命令追出大门 浏览:913
程序员必背97件事 浏览:939
云服务器python怎么读取 浏览:30
哪里买云服务器划算 浏览:236
四川日报pdf 浏览:965
按摩解压助眠小姐姐 浏览:411
风冷压缩机水冷却器 浏览:879
服务器播放器如何打开方式 浏览:790
phppython快 浏览:366
pdf转换word免费版 浏览:37
二手的有什么APP 浏览:329
服务器的应用镜像是什么 浏览:153
命令行的使用方法 浏览:514
怎么让图片左右压缩 浏览:656
白鹿原pdf 浏览:433