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:
C-Server
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
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
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:
Code:
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
Code:
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);
}
}
}
Code:
inStream = new ObjectInputStream(labviewClient.getInputStream());
Was muss ich auf der Serverseite machen? Oder liegt mein Problem wo anders?
Vielen Dank für Eure Hilfe!
ulli