2010-11-04 177 views
0

如何修改此代碼並將msg字符串值傳遞給服務器?我不希望它在控制檯上打印任何字符。在我的服務器上,我收到一個空值。將值傳遞給服務器

import java.net.*; 
import java.io.*; 

public class SocketClient { 
    public static void main(String[] args) { 
    // Create a socket without a timeout 

String msg = "sssssssssssssssssssssss"; 
    try { 
     InetAddress addr = InetAddress.getByName("127.0.0.1"); 
     int port = 8090; 

     Socket socket = new Socket(addr, port); 
     //ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream()); 
     BufferedWriter oos = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); 
     System.out.println("qqqqqqqq"); 
     oos.write(msg); 
     oos.flush(); 

     oos.close(); 


    } catch (UnknownHostException e) { 
    } catch (IOException e) { 
    } 
+0

也許你還應該張貼代碼爲您的服務器。 – MAK 2010-11-04 11:11:36

+0

我使用的服務器是xSocket – Proyb2 2010-11-04 11:22:36

+0

perhap你仍然可以看到我的服務器代碼? – Proyb2 2010-11-04 11:25:20

回答

0

乍一看,你的代碼看起來是正確的。但是,一定要在抓到它們時打印異常。否則,你永遠不會知道你是否做錯了什麼。

+0

你的意思是ObjectOutputStream(socket.getOutputStream())可以在沒有用戶輸入或println的情況下使用嗎? – Proyb2 2010-11-04 11:24:35

+0

Perhap,你可以看到我的服務器代碼? – Proyb2 2010-11-04 11:25:47

0

如果您的服務器代碼String data = nbc.readStringByDelimiter("\0");你需要的信息後,發送0字節:socket.getOutputStream().write(0);

+0

讓我試試看看它是否有效 – Proyb2 2010-11-04 11:57:41

+0

它顯示void type不允許在這裏 – Proyb2 2010-11-04 12:00:18

+0

@ user217582你是什麼意思? – khachik 2010-11-04 12:08:51