From: <da...@us...> - 2003-08-03 06:36:06
|
Update of /cvsroot/binaryphp/binaryphp/functions/sockets In directory sc8-pr-cvs1:/tmp/cvs-serv23098/sockets Added Files: socket_connect.cpp socket_create.cpp socket_read.cpp socket_write.cpp Log Message: Moved files into their proper subdirectories. --- NEW FILE: socket_connect.cpp --- php_var socket_connect(php_var sock, php_var addr, php_var port = 0) { in_addr tmp; php_socket *socket = (php_socket *) sock.res; int ret; hostent *host_entry; sockaddr_in sin; sin.sin_family = AF_INET; sin.sin_port = htons((unsigned short int)(int)port); if(inet_aton(addr, &tmp)) sin.sin_addr.s_addr = tmp.s_addr; else { if(!(host_entry = gethostbyname(addr))) return (php_var) false; if(host_entry->h_addrtype != AF_INET) return (php_var) false; memcpy(&(sin.sin_addr.s_addr), host_entry->h_addr_list[0], host_entry->h_length); } memset(&(sin.sin_zero), '\0', 8); ret = connect(socket->sock, (sockaddr *)&sin, sizeof(sockaddr)); if(ret < 0) return (php_var) false; return (php_var) true; } --- NEW FILE: socket_create.cpp --- typedef struct { int sock; int type; int error; } php_socket; php_var socket_create(php_var domain, php_var type, php_var protocol) { php_socket sock; sock.sock = socket((long) domain, (long) type, (long) protocol); if(sock.sock < 0) return (php_var) false; sock.type = type; php_var ret; ret.res = (void *) &sock; return ret; } --- NEW FILE: socket_read.cpp --- #define PHP_BINARY_READ 0 #define PHP_NORMAL_READ 1 php_var socket_read(php_var sock, php_var len, php_var type = PHP_BINARY_READ) { php_socket *socket = (php_socket *) sock.res; int ret; char *buf = new char[len]; ret = recv(socket->sock, buf, len, 0); if(ret < 0) return (php_var) false; php_var retu = buf; cout << buf << " -" << endl; // delete buf; return retu; } --- NEW FILE: socket_write.cpp --- php_var socket_write(php_var sock, php_var buf, int len = 0) { php_socket *socket = (php_socket *) sock.res; if(len == 0) len = buf.container.length(); if(write(socket->sock, buf.container.c_str(), (int) len) < 0) return (php_var) false; return (php_var) true; } |