run:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextDouble(Scanner.java:2413)
at socketserver.SocketServer.main(SocketServer.java:38)
Java Result: 1
package socketclient;
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class SocketClient {
/**
* @param args the command line arguments
*/
public static void main(String args[]) throws Exception
{
double inputDouble;
double modifiedNum;
Scanner inFromUser = new Scanner(System.in);
Socket clientSocket = new Socket("localhost", 6789);
DataOutputStream outToServer =
new DataOutputStream(clientSocket.getOutputStream());
Scanner inFromServer = new Scanner(clientSocket.getInputStream());
inputDouble = inFromUser.nextDouble();
outToServer.writeDouble(inputDouble);
modifiedNum = inFromServer.nextDouble();
System.out.println("FROM SERVER: " + modifiedNum);
outToServer.close();
clientSocket.close();
}
}
package socketserver;
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class SocketServer {
/**
* @param args the command line arguments
*/
public static void main(String args[]) throws Exception
{
double clientNum;
double roundedNum;
ServerSocket welcomeSocket = new ServerSocket(6789);
while(true) {
Socket connectionSocket = welcomeSocket.accept();
Scanner inFromClient = new Scanner(connectionSocket.getInputStream());
DataOutputStream outToClient =
new DataOutputStream(connectionSocket.getOutputStream());
clientNum = inFromClient.nextDouble();
roundedNum= Math.round(clientNum);
outToClient.writeDouble(roundedNum);
}
}
}
您的错误是使用scanner
从服务器读取客户端发送的数据,反之。
使用DataOutputStream
发送Double
,因此需要DataInputStream
来读取Double
;两边都是。
将InputFromServer
和InputFromClient
的扫描程序
更改为DataInputStream
。此外,不要忘记刷新
输出,并关闭
结束时的流。
我使用这段代码通过JAVA运行简单的TCP服务器,并使用Socket协议android应用程序作为客户端。问题是,当客户端连接时,我会发送消息,服务器端什么都不做,直到我断开客户端的连接,之后会出现消息。我认为在while((inputLine=in.readLine())!=空)
创建套接字并建立连接后,我使用BufferedReader和PrintWriter从套接字进行写/读操作。 当我用完插座后,我就把它关上。 这将导致发送一个TCP fin,并留下一个半开的传输控制协议。有什么方法可以检测客户端/服务器是否关闭了连接?
问题内容: 我一直在编写一个有趣的小程序,该程序在Linux上的C语言中通过TCP传输文件。该程序从套接字读取文件并将其写入文件(反之亦然)。我最初使用读/写并且程序可以正常工作,但是后来我了解了拼接技术,并想尝试一下。 当我从stdin(重定向文件)读取并写入TCP套接字时,我用splice编写的代码可以完美地工作,但是当从套接字读取并写入stdout时,将spr将errno设置为EINVAL会
问题内容: 我正在研究并尝试制作一个简单的应用程序。这是代码: 编辑: 我的错,抱歉,但主要问题仍然存在。这是更正的代码: 但是,当我尝试启动它时,出现以下错误: 这可能是什么原因? UPD: 这是其余的痕迹: 问题答案: 这可能是什么原因? 的原因是您尚未向程序传递任何参数。因此,不会引用有效的数组索引(顺便说一句:我将创建一个单独的局部变量,而不是分配给该数组。从技术上讲,这是可能的,但我不会
问题内容: 我正在使用Java套接字构建一个简单的客户端/服务器应用程序,并尝试使用ObjectOutputStream等。 我一直在这个URL http://java.sun.com/developer/technicalArticles/ALT/sockets上关注该教程,当它谈到通过套接字传输对象时,它从一半开始。 请参阅我为客户端提供的代码http://pastebin.com/m37e4
我想从Java应用程序通过套接字发送一个简单的。我的问题是,如果不在的末尾添加'\n',编写就不起作用。我必须添加这个“\n”还是有更优雅的解决方案? 这是我的代码: