Salut, j'ai un prog qui utilise des socket et j'ai un petit probleme. Quand j'exécute 2 fonctions Send() d'affilé et que je fais un Close() juste apres, y'a que le premier Send() qui est exécuté (si je supprime le Close(), les 2 Send() sont exécutés).

Exemple:

Dans ce cas, seul le premier Send() est exécuté:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
		CString strTemp = "Test";
		int nResult = m_ClientSocket.Send(LPCTSTR(strTemp), 1024);
		strTemp = "test2";
		int nSize = strTemp.GetLength();
		nResult = m_ClientSocket.Send(LPCTSTR(strTemp), nSize);
		m_ClientSocket.Close();
Mais dans ce cas, les deux Send() sont exécutés:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
		CString strTemp = "Test";
		int nResult = m_ClientSocket.Send(LPCTSTR(strTemp), 1024);
		strTemp = "test2";
		int nSize = strTemp.GetLength();
		nResult = m_ClientSocket.Send(LPCTSTR(strTemp), nSize);
Si j'envoie 1024 caractères lors du premier Send() c'est parce que je veux pas lors de la réception que les 2 messages soient transmis dans une seule trame (ca me simplifie bien les choses au niveau de la réception). Je comprend pas d'où vient mon problème. Quelqu'un a déjà eu le meme genre de soucis?

Merci à ceux qui pourront m'aider.

PS:le deuxième message à l'air d'être bien envoyé car nResult n'est jamais égal à SOCKET_ERROR mais je recois jamais le message si je fais le Close().