我有用Java编写的代码,因为我不知道Java想使用python建立套接字连接,但我无法理解python等效于Java的getInputStream()和getOutputStream()吗?以及如何在python中使用它?接下来,您可以找到我已经在python中编写的代码。
import socket
try:
resMsg = None
myClient = None
myClient = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
ip = socket.gethostbyname("usddcwvtrkjxts3")
#print(ip)
port = 3450
address = (ip, port)
myClient.connect(address)
data = myClient.recv(1024)
print(data)
except:
print("connection failed")
我已经用Java编写了以下代码:
public String invoke(String requestMsg) {
String resMsg = null;
Socket myClient = null;
DataInputStream input = null;
PrintWriter output = null;
try {
try {
myClient = new Socket("vwddtrkjxts002", 3450);
input = new DataInputStream(myClient.getInputStream());
output = new java.io.PrintWriter(myClient.getOutputStream(), true);
output.println(requestMsg);
output.write("\u001A");
output.flush();
StringBuffer message = new StringBuffer();
try {
while (true) {
message.append((char) input.readByte());
}
} catch (EOFException e1) {
}
resMsg = message.toString();
System.out.println(resMsg);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
output.close();
input.close();
myClient.close();
} catch (IOException e) {
System.out.println(e);
}
}
return resMsg;
}
我能够与python建立连接,但无法将任何内容打印为输出。
任何建议都会有所帮助!先感谢您
最佳答案
您可以查看一个好的教程here
综上所述,
作为客户端发起连接的客户端,一旦建立连接,就可以使用套接字对象的recv()和send()方法来接收和发送信息
作为服务器,您绑定到端口并开始侦听。一旦accept()方法返回,便有了对象,可以在其上调用recv并发送类似于客户端的方法