Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:读套接字_Java_Sockets_Client Server - Fatal编程技术网

Java:读套接字

Java:读套接字,java,sockets,client-server,Java,Sockets,Client Server,客户 服务器 public static DataOutputStream toServer = null; Socket SMTPSocket; SMTPSocket = new Socket("localhost", 222); toServer = new DataOutputStream(SMTPSocket.getOutputStream()); inl = new BufferedReader(new InputStreamReader(System.in));

客户

服务器

public static DataOutputStream toServer = null;
Socket SMTPSocket;
SMTPSocket = new Socket("localhost", 222);

toServer = new DataOutputStream(SMTPSocket.getOutputStream());
inl = new BufferedReader(new InputStreamReader(System.in));

System.out.println("Which file do you want to stream?");
String requested_file= inl.readLine(); //read from keyboard
toServer.writeBytes(requested_file);//send to server the keyword
toServer.flush();
这是一个简单的收发程序。正如我看到的,我的客户机发送数据,但服务器无法读取它们。请帮忙,
有什么问题吗?

能否显示在每一侧创建套接字的部分?另外,您是否尝试在
写入字节(…)
之后
flush()
?(请参阅此处的更多内容)@MoeNeuron我将套接字部分添加到我的代码中我尝试在
writeBytes()之后
flush()
,但没有看到任何更改。。我很困惑这只是一段代码片段,不是可运行(甚至是可编译)的代码。您的写入和读取代码不兼容。一般来说,I/O类是成对的,一个用于阅读,一个用于写作。这些方法也可以配对,因此
DataOutputStream.writeUTF
应该与
DataInputStream.readUTF
配对。您可以决定要哪一对,但是
DataOutputStream.writeUTF
DataInputStream.readUTF
应该至少适用于您提供的小片段。您可以在每一侧显示创建套接字的部分吗?另外,您是否尝试过在
writeBytes(…)
之后使用
flush()
?(请参阅此处的更多内容)@MoeNeuron我将套接字部分添加到我的代码中我尝试在
writeBytes()之后
flush()
,但没有看到任何更改。。我很困惑这只是一段代码片段,不是可运行(甚至是可编译)的代码。您的写入和读取代码不兼容。一般来说,I/O类是成对的,一个用于阅读,一个用于写作。这些方法也可以配对,因此
DataOutputStream.writeUTF
应该与
DataInputStream.readUTF
配对。您可以决定需要哪一对,但是
DataOutputStream.writeUTF
DataInputStream.readUTF
至少可以用于您提供的小片段。
ServerSocket ssock = new ServerSocket(222);
Socket connsock = null;
connsock = ssock.accept();

fromClient = new BufferedReader(new InputStreamReader(connsock.getInputStream()));

String requested_file = fromClient.readLine();// read keyword from client
System.out.println(requested_file);