网站上传服务器,会员注册接收不了数据-学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
> 信息中心 >
网站上传服务器,会员注册接收不了数据
来源:互联网 发表时间: 10:18:32 责任编辑:王亮字体:
为了帮助网友解决“网站上传服务器,会员注册接收不了数据”相关的问题,学网通过互联网对“网站上传服务器,会员注册接收不了数据”相关的解决方案进行了整理,用户详细问题包括:网站上传服务器,会员注册接收不了数据。但是能读,不能写入本地测试是可以的。请问是什么问题?,具体解决方案如下:解决方案1:文件缺少写入权限?解决方案2:引用&1&楼&u&的回复:文件缺少写入权限?哪个文件?解决方案3:没有写入权限
相关文章:
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 学网 版权所有
京ICP备号-1 京公网安备02号Socket编程,为什么客户端无法接收来自服务器的数据? - ITeye问答
如题,我写了段Socket服务器\客户端通讯的程序,服务端能接收到客户端的数据,但是客户端就无法接收到服务端传回的数据,代码如下
Server端
import java.io.BufferedR
import java.io.IOE
import java.io.InputStreamR
import java.io.PrintW
import java.net.ServerS
import java.net.S
* @author Think
public class SocketServer {
* @param args
public static void main(String[] args) {
new SocketServer().start();
public void start(){
ServerSocket server = new ServerSocket(10086);
while(true){
System.out.println("Waiting for a client...");
Socket client = server.accept();
new SocketServerThread(client).start();
} catch (IOException e) {
e.printStackTrace();
class SocketServerThread extends Thread{
Socket client =
public SocketServerThread(Socket client){
this.client =
public void run(){
// 得到CLIENT的输入流,从输入流出取出传输的数据
BufferedReader reader_from_client = new BufferedReader(new InputStreamReader(client.getInputStream()));
String line =
System.out.print("from client message:");
while((line = reader_from_client.readLine()) != null){
System.out.println(line);
// 得到CLIENT端的输入流,通过向CLIENT传输数据
PrintWriter writer_to_client = new PrintWriter(client.getOutputStream());
writer_to_client.println("Ok");
writer_to_client.flush();
reader_from_client.close();
writer_to_client.close();
client.close();
} catch (IOException e) {
Client
import java.io.BufferedR
import java.io.IOE
import java.io.InputStreamR
import java.io.PrintW
import java.net.InetA
import java.net.S
* @author Think
public class SocketClient {
* @param args
public static void main(String[] args) {
Socket remoteServer = new Socket(InetAddress.getLocalHost(), 10086);
// 得到SERVER端SOCKET的输出流,通过向输出流写入数据,与SERVER进行通信
PrintWriter write_to_server = new PrintWriter(remoteServer.getOutputStream(), true);
write_to_server.write("Hello, what's you name?");
write_to_server.flush();
// 把下面这几行放开,SERVER端就收不到数据了,一直处于阻塞状态
// 得到SERVER端的输出流,从输出流中读取从SERVER传递来的数据
BufferedReader reader_from_server = new BufferedReader(new InputStreamReader(remoteServer.getInputStream()));
String line =
while((line = reader_from_server.readLine()) != null){
System.out.println(line);
reader_from_server.close();
write_to_server.close();
remoteServer.close();
} catch (IOException e) {
e.printStackTrace();
如果Client中的说明,只要是Client中放开了
BufferedReader reader_from_server = new BufferedReader(new InputStreamReader(remoteServer.getInputStream()));
String line =
while((line = reader_from_server.readLine()) != null){
System.out.println(line);
reader_from_server.close();
这段代码,SERVER就阻塞在
while((line = reader_from_client.readLine()) != null){
这行,不知道是哪个环节理解或处理错了,还望大家指点指点!
问题补充:jkxydp 写道你客户端发送了消息之后就把连接关闭了还怎么接收服务端的消息?
谢谢你的关注!
即使不关闭连接,也是取不到数据,看了下其它类似的提问,问题在于readLine()会导致阻塞,还在摸索解决的办法!
问题补充:
wgy_superpower 写道第一:Socket编程时,永远不要在关闭写(writer)之前关闭读(reader)
第二:不管是客户端还是服务端在通过Socket读取数据的时候,在你的数据传输完成后,发送一个结束标记(比如:end),这样在你的 while循环里面判断一下数据是否已经传输完毕,完毕后跳出循环,否则由于你的程序就会一直阻塞在 readLine()这里,因为你的 socket还没有断开,会一直等待你写数据。
你说的有道理,经过后来的试验,确实是因为readLine()一直等待着客户端的输入,但此时客户端也在等待服务端的返回,所以导致两边都在那等待,就阻塞了。
一句话就是,一直【等待写数据】,但又没有数据写入,所以就卡住了。
问题补充:anranran 写道SocketServer :& while((line = reader_from_client.readLine()) != null)
这个在socket没有关闭的时候是无法输出来的。
所以Server do not send any data to client
嗯,也有道理,但主要不是socket没有关闭,而是没有向流中写数据,而readLine()又一直在那读取,所以就阻塞了!
采纳的***
第一:Socket编程时,永远不要在关闭写(writer)之前关闭读(reader)
第二:不管是客户端还是服务端在通过Socket读取数据的时候,在你的数据传输完成后,发送一个结束标记(比如:end),这样在你的 while循环里面判断一下数据是否已经传输完毕,完毕后跳出循环,否则由于你的程序就会一直阻塞在 readLine()这里,因为你的 socket还没有断开,会一直等待你写数据。
SocketServer :& while((line = reader_from_client.readLine()) != null)
这个在socket没有关闭的时候是无法输出来的。
所以Server do not send any data to client
writer_to_client.println("Ok");&&
修改成writer_to_client.write("OK");
你客户端发送了消息之后就把连接关闭了还怎么接收服务端的消息?
已解决问题
未解决问题后使用我的收藏没有帐号?
所属分类: &
查看: 22|回复: 1
玩lol的时候老出现从服务器接收数据是怎么回事
玩lol的时候老出现从服务器接收数据是怎么回事
点这里&&&&
462173金币
TA的勋章:
这问题在特玩网LOL专区里面讲得挺详细的,在攻略大全那块,
指尖每日首次回帖可以赚5金币()收起回复展开回复
点这里&&&&
王牌新游秀 参与答题拿好礼!
经常在论坛发帖,且发帖量较大(发帖量4000以上)