本系统(WinKing)提供之 Windows Sockets API 介面乃是依照 1993年1月20日公布之 WINSOCK 第1.1版(如附录)中所定义之函式 (routine); 包括了30个Berkeley Software Distribution (BSD) 的函式以及16个符合 Windows Message-driven 特性的函式。
(21) setsockopt():设定 Socket 的状态。 格式: int PASCAL FAR setsockopt( SOCKET s,int level,int optname,const char FAR *optval,int optlen ); 参数: s Socket 的识别码,level 选项设定的 level,optname 选项名称,optval 选项的设定值,optlen 选项设定值的长度 传回值: 成功 - 0 失败 - SOCKET_ERROR (呼叫 WSAGetLastError() 可得知原因) 说明: 此函式用来设定 Socket 的一些选项,藉以更改其动作。 可更改的选项有: (参见WINSOCK第1.1版54页) Value Type ----------------------------------------------- SO_BROADCAST BOOL *SO_DEBUG BOOL SO_DONTLINGER BOOL *SO_DONTROUTE BOOL *SO_KEEPALIVE BOOL SO_LINGER struct linger FAR* SO_OOBINLINE BOOL *SO_RCVBUF int SO_REUSEADDR BOOL *SO_SNDBUF int TCP_NODELAY BOOL
(22) shutdown():停止 Socket 接收/传送的功能。 格式: int PASCAL FAR shutdown( SOCKET s, int how ); 参数: s Socket 的识别码,how 代表该停止那些动作的标帜 传回值: 成功 - 0 失败 - SOCKET_ERROR (呼叫 WSAGetLastError()可得知原因) 说明: 此函式用来停止 Socket 的後续接收或传送的功能。 若 how 的值为 0,则不再接收资料。 若 how 的值为 1,则不再允许传送资料。 若 how 的值为 2,则不再接收且不再传送资料。 shutdown() 函式并没有将 Socket 关闭,所以该 Socket 所占用之资源必须在呼叫closesocket() 之後才会释放。
>>> import shutil
>>> with open(/etc/passwd,rb) as sfobj:
... with open(/tmp/mima.txt,wb) as dfobj:
... shutil.copyfileobj(sfobj,dfobj) #拷贝文件对象
>>> shutil.copyfile(/etc/passwd,/tmp/mima2.txt) #拷贝&…