Witam,
Napisałam czat w javie - wszystko działa prawie idealnie - prawiem.
otóż po kliknieciu przycisku na applecie pobierany jest text (nick) - i jest on wysyłany do serwera.
Serwer jest w C++. Ale co się okazuje to czasami nick wysyłany jest jako jeden pakiet a czasami jako dwa pakiety.
Dla przykładu - jeśli nick to "agnieszka" wówczas serwer odbiera to tak
a
gnieszka
lub tak
agn
ieszka
a czasami normalnie jako:
agnieszka
No i tu jest problem bo chcę coś w stylu zrobić:
if (nick=="agnieszka") To_cosTam();
Natomiast kod klienta odpowiedzalny za wysyłanie to
private void jButtonLogowanieMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
String nick = jTextFieldNick.getText();
String password = jTextFieldPassword.getText();
try
{
Socket s=null;
s = new Socket();
s.connect(new InetSocketAddress(IMCzat.myHost, 5000), 1000);
jLabel1.setText("nawiozano polaczenie");
//--------------------------------------------------------
try
{
DataOutputStream out;
OutputStream out_sock;
out_sock = s.getOutputStream();
out = new DataOutputStream ( out_sock );
out.writeBytes(nick);
jLabel1.setText(nick);
}
catch (IOException e)
{
System.err.println( e.getMessage());
e.printStackTrace();
}
//----------------------------------------------------------
}
catch (java.net.UnknownHostException ex)
{
jLabel1.setText("Error_2" + ex);
}
catch (IOException ex)
{
jLabel1.setText("Error_1" + ex);
}
}
Natomiast fragment serwera;
while(1)
{
ret = recv(sock, szBuf, DEFAULT_BUFFER, 0);
if (ret == 0) break;
else if (ret == SOCKET_ERROR)
{
printf("blad funkcji recv(): %d\n", WSAGetLastError());
break;
}
szBuf[ret] = '\0';
printf("RECV: '%s'\n", szBuf);
}
I co to poradzicie