Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从头开始的JavaSMPP库_Java_Sockets_Bytearray_Smpp_Pdu - Fatal编程技术网

从头开始的JavaSMPP库

从头开始的JavaSMPP库,java,sockets,bytearray,smpp,pdu,Java,Sockets,Bytearray,Smpp,Pdu,我是一个java新手,我想做的是提交一系列十六进制值给ActiveXperts和smpp模拟器 但是,使用下面的代码,我甚至无法看到数据通过wireshark发送到模拟器端口,这意味着我做错了什么 我从中得到了一系列十六进制值。因此,它们应该具有有效的pdu_头和pdu_体。然而,这些数据甚至还没有发布出来,请告知我在java中错过了哪些提交数据的步骤 public class Main { /** * @param args the command line arguments */ p

我是一个java新手,我想做的是提交一系列十六进制值给ActiveXperts和smpp模拟器

但是,使用下面的代码,我甚至无法看到数据通过wireshark发送到模拟器端口,这意味着我做错了什么

我从中得到了一系列十六进制值。因此,它们应该具有有效的pdu_头和pdu_体。然而,这些数据甚至还没有发布出来,请告知我在java中错过了哪些提交数据的步骤

public class Main {

/**
 * @param args the command line arguments
 */
private static byte[] ba = {0x00, 0x00, 0x00, 0x2F
        ,0x00, 0x00 ,0x00, 0x02
        ,0x00 ,0x00 ,0x00, 0x00
        ,0x00, 0x00,0x00 ,0x01
        ,0x53 ,0x4D, 0x50, 0x50
        ,0x33 ,0x54, 0x45 ,0x53
        ,0x54, 0x00, 0x73, 0x65
        ,0x63, 0x72, 0x65, 0x74
        ,0x30, 0x38, 0x00, 0x53
        ,0x55, 0x42, 0x4D, 0x49
        ,0x54, 0x31, 0x00 ,0x50
        ,0x01, 0x01, 0x00};
public static void main(String[] args) throws IOException {
    // TODO code application logic here

    try {
        Socket socket = new Socket("127.0.0.1", 2775);
        System.out.print("Connected");
        OutputStream out = socket.getOutputStream();
        DataOutputStream dos = new DataOutputStream(out);
        for (int i=0; i< ba.length; i++){
            try {
                out.write(ba[i]);
            }catch  (Exception e){
                System.err.println("Don't know about host: taranis.");
            }
        }
        out.flush();
        out.close();

    } catch (UnknownHostException e) {
        System.err.println("Don't know about host: taranis.");
        System.exit(1);
    } catch (IOException e) {
        System.err.println("Couldn't get I/O for "
                           + "the connection to: taranis.");
        System.exit(1);
    }


}
公共类主{
/**
*@param指定命令行参数
*/
私有静态字节[]ba={0x00,0x00,0x00,0x2F
,0x00,0x00,0x00,0x02
,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x01
,0x53,0x4D,0x50,0x50
,0x33,0x54,0x45,0x53
,0x54,0x00,0x73,0x65
,0x63,0x72,0x65,0x74
,0x30,0x38,0x00,0x53
,0x55,0x42,0x4D,0x49
,0x54,0x31,0x00,0x50
,0x01,0x01,0x00};
公共静态void main(字符串[]args)引发IOException{
//此处的TODO代码应用程序逻辑
试一试{
插座=新插座(“127.0.0.1”,2775);
系统输出打印(“已连接”);
OutputStream out=socket.getOutputStream();
DataOutputStream dos=新的DataOutputStream(输出);
for(int i=0;i

}

这似乎是您的服务器代码。您是否将客户端连接到此正在运行的服务器?另外,请发布输出/堆栈跟踪。没有堆栈跟踪,因为没有引发异常。除了连接到smpp模拟器之外,它似乎什么都不做。它只是不发送任何字节。我假设您看到控制台中打印的“已连接”字符串。。。我将调试并逐步执行代码,以查看到底发生了什么。