오늘 은 PHP 와 C 언어 가 socket 을 통 해 통신 하 는 프로그램 을 써 보 려 고 합 니 다.PHP 매 뉴 얼 을 보 니 socket 클 라 이언 트 를 만 들 수 있 는 여러 가지 방법 이 있 습 니 다.1.fsockopen()을 통 해 socket 연결 을 만 든 다음 fputs()로 메 시 지 를 보 내 고 fgets()로 메 시 지 를 받 을 수 있 습 니 다.2,socket 을 통 해create()socket 연결 을 만 들 고 socketsend() or socket_write()메시지 보 내기,socketrecv() or socket_read()메시지 보 내기. 이상 하 게 도 나 는 수첩 에서 이 확장 모듈 이 실험 적 이라는 말 을 보 았 다.이 모듈 의 행동 은 함수 의 이름과 이 모듈 에 관 한 다른 모든 문서 가 알림 없 이 PHP 이후 발표 에 따라 변 경 될 수 있 습 니 다.저 희 는 이 확장 모듈 을 사용 하 는 동시에 스스로 위험 을 부담 하 라 고 알려 드 립 니 다."php 4.0 socket 통신 이 아직 완전히 안정 되 지 않 은 것 같 습 니 다.오늘 제 가 쓴 클 라 이언 트 는 서버 와 두 번 의 통신 을 해 야 합 니 다.저 는 위 에 있 는 이 방법 으로 클 라 이언 트 프로그램 을 썼 습 니 다.단 한 번 의 통신 일 때,즉 PHP 클 라 이언 트 가 메 시 지 를 보 낸 다음 에 메 시 지 를 받 고 연결 을 닫 는 것 을 발 견 했 습 니 다.이 두 가지 방법 은 모두 정확 하고 신속하게 기능 을 실현 할 수 있 지만 두 번 의 통신 이 라 고 생각 할 때 현저 한 차이 가 있 습 니 다.첫 번 째 방법 은 첫 번 째 통신 이 특히 빨리 끝 났 습 니 다.이것 은 서버 의 수출 을 통 해 알 수 있 지만 두 번 째 통신 은 몇 분 을 기 다 려 야 끝 날 수 있 습 니 다.저 는 여러 번 이 랬 습 니 다.제 프로그램 이 어디 가 잘못 되 었 는 지 잘 모 르 겠 습 니 다.아니면 이 방식 으로 연결 하 는 것 이 문제 입 니까?그러나 두 번 째 방법 은 이 두 번 의 통신 을 하 는 것 이 빠 르 고 정확 합 니 다!아주 잘 했 어 요.마지막 으로 나 는 두 번 째 상황 에 따라 class///////////////////////////////////////파일 설명////////////////////////////////////////////////////////////////////////// Class Name : socket// Version : V1.0// Functional Outline : create socket,and send message to server// Revision history : 2004/12/15 First version created// Current : 2004/12/15 Liu Yongsheng//////////////////////////////////////////////////////////////////////////////////////////class socket{ var $socket; //소켓 핸들 var $sendflag = ">>>"; var $recvflag = "<<<"; var $response; var $debug = 1; function socket($hostname,$port){ $address = gethostbyname($hostname); $this->socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP); $result = socket_connect($this->socket,$address,$port); if($this->debug == 1){ if ($result < 0) { echo "socket_connect() failed.Reason: ($result) " . socket_strerror($result) . " "; } else{ echo "connect OK. "; } } } function sendmsg($msg){ socket_write($this->socket,$msg,strlen($msg)); $result = socket_read($this->socket,100); $this->response = $result; if($this->debug == 1){ printf("%s $msg ",$this->sendflag); printf("%s $result ",$this->recvflag); } return $result; } function close(){ socket_close($this->socket); }}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다: