我想把这个伪代码重新编码成Java:
我已经试过重新编码了,但它不起作用,或者我不知道我是否做对了。在
我已经用Python、Ruby和PHP编写了代码,但我想用Java编写:
-Python-
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('s14.chatango.com', 443))
s.send(b'bauth:deinos\x00')
s.send(b"bmsg:hi, i'm connecting via python :3\r\n\x00")
s.close()
-红宝石-
^{pr2}$-菲律宾比索-
$socket = socket_create(AF_INET, SOCK_STREAM, 0);
$s = socket_connect($socket, 's14.chatango.com', 443);
socket_write($socket, "bauth:deinos\x00");
socket_write($socket, "bmsg:hi, i'm connecting via php :3\r\n\x00");
socket_close($socket);
输出将是:嗨,我是通过(Python或Ruby或PHP)连接的; 该消息将发送到此聊天室:http://deinos.chatango.com/。在
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
public class Samp {
public static void main(String[] args) throws Exception, IOException{
//The Server
String server = "s14.chatango.com";
//The Message
String str = "Hi,I am connecting to chatango using java :)";
//The Port
int port = 443;
//The Socket Connection
Socket sock = new Socket( server, port );
InetAddress addr = sock.getInetAddress();
//Print Connected
System.out.println("Connected to " + addr);
PrintWriter out =new PrintWriter(sock.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
//Send Authorization to deinos
out.println("bauth:deinos\0");
//Print the String
out.println(str);
//Closing all Connections
out.flush();
in.close();
out.close();
sock.close();
}
}
但它仍然没有将字符串发送到http://deinos.chatango.com/ 我的代码有问题还是我遗漏了什么?在
根据this answer on escape sequence in java,NUL字符(python}
\x00
)的正确转义序列是\0
或{所以等价的
"bauth:deinos\x00"
将在java中"bauth:deinos\0"
顺便说一下,它具有与原始代码相同的功能
在java中
应替换为
^{pr2}$编辑 修改后也丢失了
\r\n\0
相关问题 更多 >
编程相关推荐