2013-05-06 131 views
-2

我用这个代码从C客户端发送一个字符串到Java服务器从C客户端发送一个字符串到Java服务器

if(send(to_server_socket, clientString, strlen(clientString), 0) != strlen(clientString)) 
{ 
    printf("socket write failed"); 
    exit(-1); 
} 

和我读到它像这样

String clientString=din.readLine(); 
      System.out.println(clientString); 

它工作完美,但我认为这不是发送字符串的最佳方式。如果我TRIE到recive发送后一个字符串,我添加以下代码

byte_count2 = recv(to_server_socket, buf2, sizeof buf2, 0); 

它不工作,甚至发送再也不会当你发送一个字符串,你需要发送工作

+1

说真的。你会问这个问题多少次? http://stackoverflow.com/questions/16386754/send-a-string-from-c-client-to-java-server – austin 2013-05-06 14:18:46

+0

这不是同一个问题! – user2350329 2013-05-06 14:21:35

+0

看看[在此](http://shoe.bocks.com/net/#send) – 2013-05-06 15:40:44

回答

0

不仅仅是字符串,而且是字符串的空终止符,所以读者知道字符串结束的位置。我表示尽可能多的my prior reply to you on this last week ...

if(send(to_server_socket, clientString, strlen(clientString)+1, 0) != strlen(clientString)+1)

注意+1 - 这是对串空终止字节。这是大多数字符串类型所必需的。当时我在交换中给你的评论特别包括了这一点。

+0

是的,我知道,但它不适用于readline()和readUTF() – user2350329 2013-05-06 14:56:52

+0

,但现在我确定问题在那里,在字符串的接收 – user2350329 2013-05-06 14:57:33

相关问题