Добрый день. Пожалуйста, помогите решить такую проблему:
Пытаюсь передать по TCP данные от клиента к серверу с двусторонней передачей (и клиент и сервер читают и передают данные). Но как я ни пытался, ничего не получилось. :(
Пробовал так:
Клиент:
Сервер:
Пытаюсь передать по TCP данные от клиента к серверу с двусторонней передачей (и клиент и сервер читают и передают данные). Но как я ни пытался, ничего не получилось. :(
Пробовал так:
Клиент:
Код:
; Переменные
Global $sServerIP = "127.0.0.1", $sPort = 33891
TCPStartup()
; Открываем сокеты
$hSocket = TCPConnect($sServerIP, $sPort)
If @error Then
MsgBox(16, "Ошибка", "Ошибка создания сокета")
Exit
EndIf
; Отправляем данные
$iSend = TCPSend($hSocket, "Client Data")
If StringLen("Client Data") <> $iSend Then
MsgBox(16, "Ошибка", "Ошибка отправки данных")
Exit
EndIf
$sRecv = TCPRecv($hSocket, 1024)
MsgBox(64, "Клиент", $sRecv)
TCPCloseSocket($hSocket)
TCPShutdown()
Сервер:
Код:
; Переменные
Global $sServerIP = "127.0.0.1", $sPort = 33891
TCPStartup()
; Открываем сокеты
$hMainSocket = TCPListen($sServerIP, $sPort)
If $hMainSocket = -1 Then
MsgBox(16, "Ошибка", "Ошибка создания сокета")
Exit
EndIf
While True
$hSocket = TCPAccept($hMainSocket)
If $hSocket <> -1 Then ExitLoop
TCPCloseSocket($hSocket)
WEnd
$sRecv = TCPRecv($hSocket, 1000000)
MsgBox(64, "Сервер", $sRecv)
$iSend = TCPSend($hSocket, "Server Data")
If StringLen("Server Data") <> $iSend Then
MsgBox(16, "Ошибка", "Ошибка отправки данных")
Exit
EndIf
TCPCloseSocket($hSocket)
TCPCloseSocket($hMainSocket)