gpt4 book ai didi

java - C服务器未接收java/android客户端消息

转载 作者:行者123 更新时间:2023-11-30 17:27:58 25 4
gpt4 key购买 nike

我对套接字还是个新手,在创建 Android 客户端和 C 服务器时遇到了一些问题。

c 服务器运行良好,android 客户端也与 c 服务器连接良好。但与服务器通信时就会出现问题。当我尝试发送一条简单的消息时,服务器似乎根本没有收到它。

所以这是服务器等待消息的代码:

void readMsg(int client){
char buffer[1024];
int n = 0;

memset(buffer, 0, sizeof(buffer));

printf("waiting for message..\n");
while(( n=recv(client, buffer, sizeof buffer - 1, 0)) > 0){
printf("recv=%s\n", buffer);
}

printf("n=%d\n", n);
}

什么也没有显示。它在等待消息时被阻止.. .

关于发送消息的java代码,这里是:

OutputStreamWriter osw;
PrintWriter pw;
try {
osw = new OutputStreamWriter(server.getOutputStream(), "UTF-8");
pw = new PrintWriter(osw, true);
pw.print(msg);
pw.flush();

}catch(IOException ioe) {
ioe.printStackTrace();
}

[编辑]

为了提供更多信息,函数 readMsg() 在服务器启动后和客户端连接后立即调用。

有关更多信息,这是我连接到服务器的方式:

try{
//I am sure that the host and port are correct
Socket server = new Socket(host, port);

}catch(IOException ioe){
ioe.printStackTrace();
}

好吧,我发现出了什么问题,实际上我两次连接到服务器。因此,它无法通过正确的套接字发送消息。

对一切表示歉意,感谢您的帮助

[/编辑]

通过查看本网站上的其他几篇文章,我已经尝试了多种解决方案。

预先感谢您的所有帮助

最佳答案

使用println代替print,还将OutputStreamWriter包装在BufferedWriter

pw = new PrintWriter(new BufferedWriter(osw), true);
pw.println(msg);

关于java - C服务器未接收java/android客户端消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26194468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com