我有一个服务器应用程序写在C:
int main(int argc, char const *argv[]) {
int sock;
struct sockaddr_un serv_addr;
size_t serv_addr_len;
int msgsock;
char buf[1024];
int msg_len;
remove(SOCKET_ADDRESS);
sock = socket(AF_UNIX, SOCK_SEQPACKET, 0);
if (sock < 0) {
perror("Opening stream socket");
exit(1);
}
memset(&serv_addr, 0, sizeof(serv_addr));
serv_addr.sun_family = AF_UNIX;
strcpy(serv_addr.sun_path, SOCKET_ADDRESS);
serv_addr_len = strlen(serv_addr.sun_path) + sizeof(serv_addr.sun_family);
if (bind(sock, (struct sockaddr *) &serv_addr, serv_addr_len)) {
perror("Binding stream socket");
exit(1);
}
if (listen(sock, 5) < 0) {
perror("Listening falied");
exit(1);
}
while (TRUE) {
msgsock = accept(sock, (struct sockaddr *) 0, 0);
if (msgsock == -1) {
perror("Accept");
}
else {
do {
memset(buf, 0, sizeof(buf));
if ((msg_len = recv(msgsock, buf, sizeof(buf), MSG_WAITALL)) < 0) {
perror("Reading stream message");
}
else if (msg_len == 0) {
printf("Ending connection\n");
}
else {
printf("%s\n", buf);
}
} while (msg_len > 0);
close(msgsock);
}
}
return 0;
}
并使用junixsocket库在Java上编写客户端:
package client;
import java.io.*;
import org.newsclub.net.unix.AFUNIXSocket;
import org.newsclub.net.unix.AFUNIXSocketAddress;
public class Client {
public static void main(String args[]) {
final String socketAddress = "/home/andrew/IdeaProjects/Sample/tmp/SOCKET_ADDRESS";
String message = "Hello Server!";
try {
final File socketFile = new File(socketAddress);
AFUNIXSocket socket = AFUNIXSocket.newInstance();
socket.connect(new AFUNIXSocketAddress(socketFile));
OutputStream out = socket.getOutputStream();
out.write(message.getBytes());
out.flush();
socket.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
请帮帮我!
unix域套接字是一种特定于平台的机制,没有本机库的java不支持它。您可以使用org.newsclub.net.unix.afunixsocket
。但此库仅支持套接字类型sock_stream
和sock_dgram
。您的C应用程序使用sock_seqpacket
,它是unix域套接字的linux特定扩展,这个库不支持它。
我计划创建一个Xamarin android应用程序。我已经创建了一个windows表单。NET应用程序。我想知道这是否是连接两者以在它们之间传输数据的一种方式。或者如果它不适用于Windows表单应用程序,那么我可以将. NET Web应用程序连接到Xamarin应用程序吗? *问题补充我其实有一个. net windows form app可以读取和生成二维码。我计划制作一个应用程序来扫描二维
问题内容: 我有2个应用程序,一个是用C编写的,另一个是用Java编写的,它们假定在同一台机器上运行。在它们之间实施IPC的最佳方法是什么? 最好的含义是可移植性,最小的用户意识(防火墙弹出窗口…)等。 问题答案: 我将使用Sockets over loop back开始。这样,您就可以发送文本或二进制数据,并在一个进程开始或结束时彻底处理。延迟大约为20-50微秒,具体取决于您对数据进行的处理以
由于我是JavaFx的新手,当然还有spring jdbc的新手,所以我处于阻塞状态。我的应用程序几乎准备就绪,我甚至使用inno setup为windows创建了安装文件。此安装文件在我的系统上运行良好,但当我在另一个系统上运行时,它不会运行;可能是由于缺少数据库及其服务器。因此,我需要一个独立的应用程序,通过安装程序管理所有数据库和其他需求。经过研究,我发现许多人建议使用Sqlite或hsql
我想创建一个应用程序使用:客户端向服务器发送,服务器将使用的大写字母,并发送回客户端进行显示。 当运行时。它显示以下错误: 我有搜索和做一些方法,但是。。你能帮助我吗。
问题内容: 我是程序世界中的每个新手,我遇到一个问题,我的要求与使用JAVA Code在Android平板电脑与台式机之间的通信有关。 上面的代码是我的servlet代码,它在我的本地系统服务器(Tomcat 6.0)中运行,在这里,我正在通过println发送消息,并且我想在另一个系统中运行的Android应用中显示相同的消息。现在,我要发布在另一个系统上运行的android代码。 这里的192
不是一个真正重要的问题,但只是好奇。您可以在运行时更改应用程序图标吗?例如,有一个按钮,当您按下该按钮时,您会在flutter中获得不同的应用程序图标(假设应用程序图标已经“设置”)。Android和iOS。 非常感谢任何意见。谢谢