소켓 통신(전송) PHP 소스 본문
소켓 통신(전송) PHP 소스
- 2016. 5. 5. 21:14
원문/출처 : http://blog.naver.com/lunacastech/140166729096
필자가 실제 현장에서 검증하고 구현된 소켓통신 PHP 소스입니다.
웹상에 저질 정보들이 너무 난무해서 확실히 되는 소켓통신 '전문전송' 소스 입니다. 물론 서버쪽에서
도 소켓을 생성하여 전문을 받고 회신을 해줄 수 있어야 겠죠?
TCP 전용으로 작성해 보겠습니다. 실험은 사이트에 "socket.php"로 올려서 예제로 만들어서 해봤습
니다. NICE(한국신용평가)사 와 라우터와 전용선으로 1:1 연결해서 했던 방식입니다.
<?php
//The Client
error_reporting(E_ALL);
$address = "xxx.xxx.xxx.xxx"; // 접속할 IP //
$port = xxxx; // 접속할 PORT //
//The Client
error_reporting(E_ALL);
$address = "xxx.xxx.xxx.xxx"; // 접속할 IP //
$port = xxxx; // 접속할 PORT //
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); // TCP 통신용 소켓 생성 //
if ($socket === false) {
echo "socket_create() 실패! 이유: " . socket_strerror(socket_last_error()) . "\n";
echo "<br>";
} else {
echo "socket 성공적으로 생성.\n";
echo "<br>";
}
echo "다음 IP '$address' 와 Port '$port' 으로 접속중...";
echo "<BR>";
if ($socket === false) {
echo "socket_create() 실패! 이유: " . socket_strerror(socket_last_error()) . "\n";
echo "<br>";
} else {
echo "socket 성공적으로 생성.\n";
echo "<br>";
}
echo "다음 IP '$address' 와 Port '$port' 으로 접속중...";
echo "<BR>";
$result = socket_connect($socket, $address, $port); // 소켓 연결 및 $result에 접속값 지정 //
if ($result === false) {
echo "socket_connect() 실패.\nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
echo "<br>";
} else {
echo "다음 주소로 연결 성공 : $address.\n";
echo "<br>";
}
echo "socket_connect() 실패.\nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
echo "<br>";
} else {
echo "다음 주소로 연결 성공 : $address.\n";
echo "<br>";
}
$i = "xxxxxxxxxxxxxxxxx"; //보내고자 하는 전문 //
echo "서버로 보내는 전문 : $i|종료|.\n";
socket_write($socket, $i, strlen($i)); // 실제로 소켓으로 보내는 명령어 //
echo "<br>";
$input = socket_read($socket, 1024) or die("Could not read from Socket\n"); // 소켓으로 부터 받은 REQUEST 정보를 $input에 지정 //
$input = socket_read($socket, 1024) or die("Could not read from Socket\n"); // 소켓으로 부터 받은 REQUEST 정보를 $input에 지정 //
echo "<br>";
echo $input; //REQUEST 정보 출력//
socket_close($socket);
?>
많은 참조가 되었나요? 이것은 예제일 뿐, 실제 약속된 전문을 BIT단위로 잘라서 보낼때는 그에 맞게 $i 값을 자동 지정하게 변형해주자.
[출처] [PHP] 소켓 통신(전송) PHP 소스|작성자 몬드
[출처] [PHP] 소켓 통신(전송) PHP 소스|작성자 몬드
반응형
RECENT COMMENT