gpt4 book ai didi

java - 将 Python 或 Ruby 或 PHP 重新编码为 Java Chatango 聊天室连接

转载 作者:行者123 更新时间:2023-12-01 11:45:24 24 4
gpt4 key购买 nike

我想将这段伪代码重新编码为 Java:

  1. 使用套接字(用于在网络上/向服务器发送原始数据的低级工具)。
  2. 创建一个新的 TCP 套接字。
  3. 使用套接字建立与 Chatango 的连接。
  4. 将授权字符串发送到 Chatango 以加入房间。
  5. 发送消息。
  6. 关闭与 Chatango 的连接。

我已经尝试重新编码它,但它不起作用,或者我不知道我做得是否正确。

我已经有 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()

- ruby -

require 'socket'
s = TCPSocket.open('s14.chatango.com', 443)
s.print "bauth:deinos\x00"
s.print "bmsg:hi, i'm connecting via ruby :3\r\n\x00"
s.close()

-PHP-

$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\u0000

因此等效的 "bauth:deinos\x00" 将是 java "bauth:deinos\0"

顺便说一下,具有与原始代码相同的功能

java 中的行

String server = "www.deinos.chatango.com";
String str = "Hi,I am connecting to chatango using java :)";
int port = 80;

应替换为

String server = "s14.chatango.com";
String str = "Hi,I am connecting to chatango using java :)\r\n\0";
int port = 443;

编辑修改后还缺少 \r\n\0

关于java - 将 Python 或 Ruby 或 PHP 重新编码为 Java Chatango 聊天室连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29180997/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com