메뉴 건너뛰기

Dev tips

소켓 에이전트를 만들어서 받는 패킷을 가져올때 fread 로 한번에 가져올수 있다.
이런 경우 특정 바이트가 넘어가면 처리를 못 하는데 php.ini 에서 memory_limit 를 적게 잡아서 그렇다고 한다.
php.ini 를 수정하지 않고 아래처럼 코딩을 바꾸면 된다.

$this->recvpacket = fread($this->fp, $readsize);

//***** Recieve way for Long Packet *****//
$tempcnt = 0;
$tempcntflag = false;
while(!feof($this->fp)) {
        if($tempcntflag && $tempcnt <= strlen($this->recvpacket)) {
                break;
        }
        $this->recvpacket .= fgetc($this->fp);
        if(!$tempcntflag && strlen($this->recvpacket) == 6) {
                $tempcnt = intval(substr($this->recvpacket, 1, 4));
                $this->recvpacket = "";
                $tempcntflag = true;
        }
}
$this->recvpacket = "|".substr("0000".$tempcnt, -4)."|".$this->recvpacket;
//***** Recieve way for Long Packet *****//
번호 제목 글쓴이 날짜 조회 수
334 새 창에 form을 post로 전송하기 taknim 2009.09.16 10522
333 PHP 에서 MySQL 바인딩 구현 taknim 2009.09.12 9150
332 file_get_content 사용하기 GET, POST taknim 2009.08.26 10659
331 [mysql] mysqlbinlog 실행시 캐릭터셋(utf8) 오류 taknim 2009.08.25 15773
330 커피 만드는 방법 taknim 2009.08.17 6538
329 [mysql] 동적 쿼리 생성시 변수를 대입하거나 값을 받아오기 taknim 2009.08.17 17210
328 [MSSQL] sp_who2 를 대신할 sql 코드 file taknim 2009.08.13 10950
327 [HTML] euc-kr and CP949 file taknim 2009.08.13 11681
» [PHP] 소켓 통신할때 패킷이 길어서 받지 못 할 때 해결 방법 taknim 2009.08.08 8646
325 vsftp 계정별로 폴더 제한, 권한 옵션 설명 taknim 2009.08.01 10833
324 ssh 특정 계정 제한하기 taknim 2009.08.01 11824
323 [MSSQL] 변수를 TABLE로 선언 후 데이터 입력 taknim 2009.07.30 11712
322 WOL 관련한 사이트 (매직패킷 전송) file taknim 2009.07.22 11768
321 [ORACLE] Flashback (과거시점에서 질의실행) taknim 2009.07.06 10158
320 [Oracle] DBNEWID Utility - DBNAME,DBID변경하기 taknim 2009.07.06 15576
319 리눅스 콘솔 단축키 taknim 2009.07.06 21956
318 bash 팁1 - 단축키, 환경변수 taknim 2009.07.06 12225
317 명령 프롬프트 창이 보이지 않는 배치 파일 실행하기 taknim 2009.07.04 12863
316 [Oracle] INSERT … ON DUPLICATE KEY UPDATE taknim 2009.06.25 13908
315 알아두면 유용한 윈도우의 환경 변수들 taknim 2009.06.25 8725