重新编写Python或Ruby或PHP到Java Chatango聊天室的连接

2024-06-17 12:05:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把这个伪代码重新编码成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()

-红宝石-

^{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/ 我的代码有问题还是我遗漏了什么?在


Tags: theioimportcomnewclosestringsocket
1条回答
网友
1楼 · 发布于 2024-06-17 12:05:29

根据this answer on escape sequence in java,NUL字符(python\x00)的正确转义序列是\0或{}

所以等价的"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;

应替换为

^{pr2}$

编辑 修改后也丢失了\r\n\0

相关问题 更多 >