2016-03-15 68 views
1

我必須建立一個TCP連接到服務器,這就要求我送證書格式登錄:如何發送認證字符串來建立TCP連接?

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

比方說主持人:qstage.thetcphost.com和端口:8999

我是socket編程新手,並使用它來實現這一點。我在客戶端使用了java.net.Socket,但我不知道如何將以上字符串用於身份驗證發送到Java中的TCP服務器。

我現在可以遠程登錄服務器。

但我怎麼傳中,< STX> ... < ETX>格式憑證字符串後(或期間): Socket套接字=新的Socket( 「mshxml.morningstar.com」,8999); 我的意思是我必須寫一段代碼來驗證自己到TCP服務器的代碼片段是什麼?

我已經搜索了這個網站的這個信息,但找不到任何。 幫助將不勝感激。

+0

看看:[java.net.ConnectException:連接被拒絕(http://stackoverflow.com/q/6876266/4290096) –

+0

的連接被拒絕問題現在解決。在創建連接之前,我的IP必須列入白名單。現在主要的問題仍然存在:如何將憑據字符串傳遞給服務器? – Pratap

回答

0

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

如果此步驟失敗,請考慮目標服務器的規格。是否提供了正確的端口?對協議的任何考慮? 通常情況下,認證將在您已經建立成功連接後發生。

編輯:添加從套接字客戶端寫入套接字的源代碼。 現在,在這種情況下,你是一個套接字客戶端,嘗試發送信用到服務器。

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

+0

我建立了連接。我的IP必須被列入白名單。現在您能告訴我如何以上述格式將驗證憑證字符串發送到服務器嗎? – Pratap

+0

我編輯了答案,向socket服務器添加了樣例'writing'動作。 @Pratap – toantran