Em có dùng thư viện pthread.h để tạo các thread giao tiếp giữa Server và Client, nhưng chỉ có Server gửi sang cho Client được. Em mới tìm hiểu về vấn đề này chút thôi ạ. Đây là code của Server Side :
//Đây là code của phần phần xử lí thread
void *CheckMes (void* tempsocket)
{
CSocket *Connector = (CSocket *) tempsocket;
while (1)
{
char tinnhannhanve[128] = {};
Connector->Receive(tinnhannhanve,128);
if (strlen(tinnhannhanve) != 0)
{
cout << "Client : " << tinnhannhanve << endl;
cout << "Server : ";
}
}
return NULL;
}
//Đây là một phần code của main sau khi đã create, bind, và listen
if (Server.Accept(Connector) == TRUE)
{
cout << "Ket noi client thanh cong !" << endl;
pthread_t thread_nhan;
pthread_create(&thread_nhan, NULL, CheckMes,(void *)& Connector);
while(1)
{
char tinnhanguidi[128] = {};
cout << "Server : ";
cin.getline(tinnhanguidi,128);
Connector.Send(tinnhanguidi,128);
}
}
Còn đây là của Client Side (tương tự Server Side) :
//Xử lí thread
void *CheckMes (void* tempsocket)
{
CSocket *Client = (CSocket *) tempsocket;
while (1)
{
char tinnhannhanve[128] = {};
Client->Receive(tinnhannhanve,128);
if (strlen(tinnhannhanve) != 0)
{
cout << "Server : " << tinnhannhanve << endl;
cout << "Client : ";
}
}
}
// Một phần code của main sau khi create và kết nối tới ip và port của Server
if (Client.Connect(_T("127.0.0.1"),12345) == 0)
{
cout << "Ket noi server thanh cong !" <<endl;
pthread_t thread_nhan;
pthread_create(&thread_nhan, NULL, CheckMes,(void *)& Client);
while(1)
{
char tinnhanguidi[128] = {};
cout << "Client : ";
cin.getline(tinnhanguidi,128);
Client.Send(tinnhanguidi,128);
}
}
Tới đây em lâm vô ngõ cụt rồi, không biết giải quyết làm sao nữa. Mong mọi người giúp e