Java does not suppport DGRAM sockets

This commit is contained in:
Johan Maasing 2024-11-28 14:22:48 +01:00
parent 965e3d18c8
commit ea4ef1d8b3
2 changed files with 12 additions and 19 deletions

1
.gitignore vendored
View file

@ -89,3 +89,4 @@ clion*
/CUDSClient/cmake-build-debug/CMakeFiles/3.30.5/CMakeDetermineCompilerABI_C.bin /CUDSClient/cmake-build-debug/CMakeFiles/3.30.5/CMakeDetermineCompilerABI_C.bin
/CUDSClient/cmake-build-debug/CMakeFiles/TargetDirectories.txt /CUDSClient/cmake-build-debug/CMakeFiles/TargetDirectories.txt
/CUDSClient/cmake-build-debug/CMakeFiles/CMakeConfigureLog.yaml /CUDSClient/cmake-build-debug/CMakeFiles/CMakeConfigureLog.yaml
*.c.o

View file

@ -11,29 +11,21 @@ int main(void) {
server_addr.sun_family = AF_UNIX; server_addr.sun_family = AF_UNIX;
strcpy(server_addr.sun_path, SERVER_SOCK_FILE); // XXX: should be limited to about 104 characters, system dependent strcpy(server_addr.sun_path, SERVER_SOCK_FILE); // XXX: should be limited to about 104 characters, system dependent
struct sockaddr_un client_addr = {};
client_addr.sun_family = AF_UNIX;
strcpy(client_addr.sun_path, CLIENT_SOCK_FILE);
// get socket // get socket
int sockfd = socket(AF_UNIX, SOCK_DGRAM, 0); int sockfd = socket(AF_UNIX, SOCK_STREAM, 0);
// bind client to client_filename if (connect(sockfd, (struct sockaddr *) &server_addr, sizeof(server_addr)) > -1) {
if (bind(sockfd, (struct sockaddr *) &client_addr, sizeof(client_addr)) > 0) { unsigned char messageBuffer[500] = {};
if (connect(sockfd, (struct sockaddr *) &server_addr, sizeof(server_addr)) > 0) { const char* message = "Hello from C";
unsigned char* messageBuffer = malloc(500); size_t messageLengthInBytes = strlen(message);
memset(messageBuffer, 0, 500); messageBuffer[0] = messageLengthInBytes;
const char* message = "Hello from C"; // Lucky for us the message just happens to be compatible with UTF-8 encoding
size_t messageLengthInBytes = strlen(message); strcpy((char *)messageBuffer+1, message);
messageBuffer[0] = messageLengthInBytes; send(sockfd, messageBuffer, messageLengthInBytes+1, 0);
strcpy((char *)messageBuffer+1, message); } else {
send(sockfd, messageBuffer, messageLengthInBytes+1, 0); perror("Unable to connect") ;
free(messageBuffer);
}
} }
// connect client to server_filename
unlink (CLIENT_SOCK_FILE); unlink (CLIENT_SOCK_FILE);
return 0; return 0;