如何发送认证字符串以建立TCP连接?

时间:2016-03-15 06:05:11

标签: java tcp tcpclient

我必须建立到服务器的TCP连接,这要求我以下列格式发送凭证进行登录:

<STX>username=fred&password=123456<ETX>

让我们说主持人:qstage.thetcphost.com和端口:8999

我是socket编程的新手,并使用相同的方法来实现它。我在客户端使用了java.net.Socket,但我不知道如何将上述字符串进行身份验证发送到Java中的TCP服务器。

我现在能够telnet服务器。

但是如何在&lt;中传递凭据字符串? STX&gt; ......&lt; ETX&gt;格式之后(或期间): 套接字套接字=新套接字(“mshxml.morningstar.com”,8999); 我的意思是,我必须编写哪些代码来验证自己对TCP服务器的身份?

我在此网站上搜索了此信息但找不到任何信息。 非常感谢帮助。

1 个答案:

答案 0 :(得分:0)

建立套接字连接是您发送任何信用信息之前的第一步。

如果此步骤失败,请考虑目标服务器的规范。是否提供了正确的端口?关于协议的任何考虑? 通常,在您已成功建立连接后,将进行身份验证。

Editted:添加从套接字客户端写入套接字的源代码。 现在,在这种情况下,你是一个套接字客户端,尝试向服务器发送信用。

public class GreetingClient
{
   public static void main(String [] args)
   {
      String serverName = args[0];
      int port = Integer.parseInt(args[1]);
      try
      {
         System.out.println("Connecting to " + serverName +
         " on port " + port);
         Socket client = new Socket(serverName, port);
         System.out.println("Just connected to " 
         + client.getRemoteSocketAddress());
         OutputStream outToServer = client.getOutputStream();
         DataOutputStream out = new DataOutputStream(outToServer);
         out.writeUTF("Hello from "
                      + client.getLocalSocketAddress());
         InputStream inFromServer = client.getInputStream();
         DataInputStream in =
                        new DataInputStream(inFromServer);
         System.out.println("Server says " + in.readUTF());
         client.close();
      }catch(IOException e)
      {
         e.printStackTrace();
      }
   }
}

此处找到的示例:http://www.tutorialspoint.com/java/java_networking.htm