2013-02-28 2 views
0

어떻게 PHP 페이지의 데이터를 TCP 포트로 보낼 수 있습니까?소켓 함수를 사용하여 데이터 보내기/받기

<?php 
// parameters to connect to server 
$ip = "192.168.1.3"; 
$port = "59995"; 
$data = "Hello"; 
$output = ""; 

// Create a TCP Stream Socket 
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); 

// Connect to the server. 
$result = socket_connect($socket, $ip, $port); 

// Write to socket! 
socket_write($socket, $data, strlen($data)); 

// Read from server 
do 
{ 
    $line [email protected]_read($socket,2048); 
    echo $line. "\n"; 
} 
while ($data != "0"); 

// Close and return. 
socket_close($socket); 
?> 

나는 그것을 사용하고 있지만 어떤 데이터도 받아들이지 않습니다! 또한,이 시간 초과를 어떻게 만들 수 있는지 알고 있습니까?

무엇이 문제입니까?

+1

정지 억제 오류는 문제가있어 ('@를')를 사용할 수 있습니다. 그것은 눈을 가리고있는 동안 교통에 대하여 걷는 것을 시도 같이이다. –

+2

http://christophh.net/2012/07/24/php-socket-programming/ – mkaatman

+1

@mkaatman Shheesh 나는 지금 늙었다 고 느낍니다. 지식이 풍부한 젊은 녀석 –

답변

0

프로그램이 작동합니다. 데이터를받지 못하면 서버의 오류 일 수 있습니다. 확실히, 당신은 서버가 연결을 닫았다는 경우가 중단 있도록

while ($line); 

대신

while ($data != "0"); 

를 원한다. 타임 아웃을 증정 (예. g. 7 개의), 당신은

socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array("sec"=>7, "usec"=>0)); 
관련 문제