메뉴 건너뛰기

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 *****//
번호 제목 글쓴이 날짜 조회 수
59 [gd] imagecopyresampled 이미지 썸네일 생성 taknim 2017.03.15 1074
58 [gd] image_filter 이미지 흑백 처리 taknim 2017.03.15 614
57 랜덤 문자열(쿠폰번호) 생성 taknim 2016.12.15 12154
56 SEED 블록암호 알고리즘 소스 (C/C++, JAVA, ASP, JSP, PHP) [1] file taknim 2016.05.27 1627
55 Excel & Office read/write - phpexcel taknim 2014.09.26 3148
54 [php] euckr 에서 깨지는 문자 해결 #2 taknim 2012.02.16 5725
53 [php] euckr 에서 깨지는 문자 해결 taknim 2012.02.15 6521
52 [암호화] hash 관련 함수들... taknim 2011.12.20 6720
51 [php] ctype - 문자열 체크 taknim 2010.08.02 10831
50 register_global = off 일때 GET,POST,GOOKIE 등 변수 가져오기 taknim 2010.06.28 11541
49 mcrypt 암호화/복호화 AES/CBC/PKCS5/PKCS7/PADDING [1] taknim 2010.03.19 19845
48 php 오버라이딩 구현 taknim 2010.02.23 10576
47 [php] imagettftext 사용할때 문자열 정렬하기 taknim 2009.10.21 13925
46 php.ini 설정 taknim 2009.09.28 9788
45 PHP 클래스 autoload 및 instance 공유 secret taknim 2009.09.16 2
44 PHP 에서 MySQL 바인딩 구현 taknim 2009.09.11 9232
43 file_get_content 사용하기 GET, POST taknim 2009.08.25 10746
» [PHP] 소켓 통신할때 패킷이 길어서 받지 못 할 때 해결 방법 taknim 2009.08.07 8734
41 [객체지향] this / __get() / __set() / clone / autoload / :: taknim 2009.06.11 9358
40 [php.ini] auto_prepend_file, auto_append_file 설정 taknim 2009.06.04 11797