c++ - Socket exchange between winsock & QTcpServer -


i found socket code winsock2.h http://www.tidytutorials.com/2009/12/c-winsock-example-using-client-server.html code client.

int hsock; int * p_int ; hsock = socket(af_inet, sock_stream, 0); ///  char buffer[1024]; int buffer_len = 1024; int bytecount;  int c; memset(buffer, '\0', buffer_len);  for(char* p=buffer ; (c=getch())!=13 ; p++){     printf("%c", c);     *p = c; }  if( (bytecount=send(hsock, buffer, strlen(buffer),0))==socket_error){ 

code server done qt qtcpserver class:

void fortunethread::run()    {    qtcpsocket tcpsocket;    if (!tcpsocket.setsocketdescriptor(socketdescriptor)) {        emit error(tcpsocket.error());        cout<<"socket error"<<endl;        return;     }      char buffer[1024];     int buffer_len = 1024;     memset(buffer, 0, buffer_len);     strcat(buffer, " server echo");      qbytearray block;     qdatastream out(&block, qiodevice::writeonly);     out.setversion(qdatastream::qt_4_0);     out << &socketdescriptor;     out << buffer;     out << strlen(buffer);     out << 0;      tcpsocket.write(block); 

above server code failed attempt match server data client data. wrong? ty

i haven't used qt sockets can't contribute on server side code. however, i'm assuming since came samples ought correct.

your client code, otoh, not make connection server. tcp socket need

  1. create socket - you're doing this
  2. connect peer socket using connect() - this missing
  3. send data using send() - you're doing too

watch out how specify port numbers. if you're on windows, uses little endian while network byte order in big endian. sockets library provides htons() , ntohs() convert between two. make sure port number pass connect() (through sockaddr_in* argument) of same byte order used create qt server. relevant ip address well, less of issue 1 typically uses inet_addr("xx.xx.xx.xx") convert string ipv4 dword in correct byte order.

lastly, note may not receive send in 1 read() @ server. servers have buffering until end-of-message marker encountered (or preset length of message read).

hth


Comments

Popular posts from this blog

java - Play! framework 2.0: How to display multiple image? -

gmail - Is there any documentation for read-only access to the Google Contacts API? -

php - Controller/JToolBar not working in Joomla 2.5 -