更新:我完全按照朋友建议的方式解决了这个问题。但我有点错过了一个事实,即我必须遵循 mysql 的协议才能获得结果。在 mysql 中,总是有一个初始握手包没有任何数据字段,因此您不会使用 getInputStream 获得任何数据。唯一的方法是在您自己的服务器中创建一个 mysql 连接并将结果发送到您的客户端。它工作得很好。谢谢大家
我想用java读取mysql连接信息。例如,我在端口 4444 上使用 java 创建了一个服务器套接字。然后我在端口 4444 上创建了一个 jdbc 连接。但它不起作用。我不知道为什么,甚至我也不知道这是否可能。这是服务器代码:
int portNr = 4444;
// Create a ServerSocket object to watch that port for clients
ServerSocket ss;
try {
ss = new ServerSocket(portNr);
System.out.println("starting...");
// Here we loop indefinitely, just waiting for clients to connect
while (true) {
// accept() does not return until a client requests a connection
// Now that a client has arrived, create an instance of our
// special
// thread subclass to respond to it.
Socket clientSocket = null;
try {
clientSocket = ss.accept();
System.err.println("heheh"+clientSocket);
// PrintWriter out = new
// PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()));
String inputLine = in.readLine();
System.err.println(inputLine)....;</i>
它打印“hehehe”;但它不打印输入行。
这是我的连接代码:
public class messagetest
{
// The JDBC Connector Class.
private static final String dbClassName = "com.mysql.jdbc.Driver";
private static final String CONNECTION =
"jdbc:mysql://127.0.0.1:4444/shadi";
public static void main(String[] args) throws
Exception,SQLException
{
System.out.println(dbClassName);
Class.forName(dbClassName);
// Properties for user and password. Here the user and password are both 'paulr'
Properties p = new Properties();
p.put("user","--------");
p.put("password","-------");
System.err.println("after p");
Connection c = DriverManager.getConnection(CONNECTION,p);
System.err.println("client:");
它不打印“客户:”感谢您的帮助。