Socketverbindung zwischen Javaclient und C-Server
-
Hallo!
Wusste nicht, wo ich dieses Theam reinschreiben soll, hätte auch genauso gut ins C-forum gepasst, aber ich probiere es mal so:Ich möchte eine Socketverbindung zwischen Java und C schaffen. Hier mein problembehafteter Code:
Java-Client:
while(connect){ try{ labviewClient = new Socket(InetAddress.getByName(labviewIP),labviewPort); outStream = new ObjectOutputStream(labviewClient.getOutputStream()); outStream.flush(); inStream = new ObjectInputStream(labviewClient.getInputStream()); connect = false; } catch(Exception e){ System.out.println(+e); } } try{ String toSend = "f"; sendData(toSend); } catch(NullPointerException n){}
C-Server:
if (!AfxSocketInit()) { fprintf(stderr, "could not init\n"); return 1; } acceptSocket = new(CSocket); if (!acceptSocket->Create(5555)) { err = acceptSocket->GetLastError(); //just for debugging fprintf(stderr, "could not create socket: %d\n", err); return 1; } if (!acceptSocket->Listen()) // we just wait for ONE connection { err = acceptSocket->GetLastError(); //just for debugging fprintf(stderr, "could not listen to socket\n"); return 1; } if (!acceptSocket->Accept(*refreshSocket)) // no waiting partner { err = acceptSocket->GetLastError(); fprintf(stderr, "could not accept socket"); return 1; } bool first = true; int length = 1400; char buff[1400]; while(first) { if(recv(*refreshSocket, buff, length, 0)) { if(buff[0] == 'f') { first = false; closeSocket(refreshSocket); closeSocket(acceptSocket); } } }
Die Verbindung klappt und der C-Server läuft auch schon freudig vor sich hin. Der java-Client hingegen nicht. Er wartet bei der zeile
inStream = new ObjectInputStream(labviewClient.getInputStream());
und läuft nicht weiter.
Was muss ich auf der Serverseite machen? Oder liegt mein Problem wo anders?Vielen Dank für Eure Hilfe!
ulli