ma ktoś jakiś pure przykład współdziałania C i Javy przez sockety lub ma pomysł dlaczego krzyczy java.io.EOFException? java jest serwerkiem a C klientem - przecież to powinno hulać lol
package sockets;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws IOException, ClassNotFoundException {
int portNumber = 12345;
//InetAddress localHost = InetAddress.getLocalHost();
InetAddress address = InetAddress.getByName(null);
ServerSocket listener = new ServerSocket(portNumber, 0, address);
try {
Socket clientSocket = listener.accept();
ObjectOutputStream out = new ObjectOutputStream(clientSocket.getOutputStream());
ObjectInputStream in = new ObjectInputStream(clientSocket.getInputStream());
int i = (Integer) in.readObject();
//String response = "mam !!!!!!";
//out.writeObject(response);
System.out.println("otrzymano: " + i);
out.close();
in.close();
clientSocket.close();
} finally {
listener.close();
}
}
}
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/un.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
int main(void) {
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
struct sockaddr_in serv_addr;
bzero((char *) &serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(12345);
inet_pton(AF_INET, "127.0.0.1", &serv_addr.sin_addr);
connect(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr));
write(sockfd, "11", strlen("11"));
close(sockfd);
return EXIT_SUCCESS;
}