如何使用Java

时间:2019-06-17 09:11:18

标签: java request client sip

我正在设置一个新客户端,并希望使用JAVA发送SIP请求。我已经执行了一些步骤,但无济于事。

例如,当从客户端发送请求时,服务器未给出响应...我认为HEADER包含错误


import java.io.IOException;
import java.io.PrintStream;
import java.net.Socket;
import java.util.Scanner;


public class Client
{

    public static void main(String args[]) throws IOException
    {
        Socket socket = new Socket("104.207.221.19", 5060);

        Scanner userInput = new Scanner(System.in);
        Scanner socketInput = new Scanner(socket.getInputStream());

        PrintStream socketOutput = new PrintStream(socket.getOutputStream());

        String Request = "";
        Request = "INVITE sip:bob@domain.com SIP/2.0 \r\n";
        Request += "Via: SIP/2.0/UDP nm;received=51.40.80.23 \r\n";
        Request += "From: <sip:nm@nm>;tag=root \r\n";
        Request += "To: <sip:nm2@nm2>;tag=dff4305d81b6facb \r\n";
        Request += "Call-ID: 50000 \r\n";
        Request += "CSeq: 42 OPTIONS \r\n";
        Request += "Content-Type: application/sdp \r\n";
        Request += "Content-Length: 142";
        Request += "\r\n\r\n";

        socketOutput.print(Request);

        while(socketInput.hasNextLine())
            System.out.println(socketInput.nextLine());

    }

}

我希望输出是服务器的响应,但是实际上没有输出发生。

1 个答案:

答案 0 :(得分:0)

您的标题说Content-Length: 142,但是您没有发送任何内容-请求没有正文。因此,我认为服务器正在等待142字节的内容到达后才做出响应。尝试将内容长度设置为零。

(实际上,我认为您正在发送2个字节的内容,因为末尾有一个备用\r\n,但绝对不是142个字节)