RingSockets 拡張機能¶
RingSockets 拡張機能の用法です。
TCP サーバ¶
用例 (TCP サーバのコード):
load "sockets.ring"
sock = socket(AF_INET,SOCK_STREAM,0)
bind(sock,"127.0.0.1",5050)
listen(sock,5)
ns = accept(sock)
send(ns,"Hello Client")
msg = recv(ns,1024)
? "Client Say >> " + msg
close(ns)
close(sock)
? "ソケットの接続を終了しました"
TCP クライアント¶
用例 (TCP クライアントのコード):
load "sockets.ring"
sock = socket(AF_INET,SOCK_STREAM)
connect(sock,"127.0.0.1",5050)
send(sock,"Hello Server")
msg = recv(sock,1024)
? "Server Say >> " + msg
close(sock)
? "ソケットの接続を終了しました"
関数¶
この拡張機能の関数一覧です。
socket(nAddressFamily, nConnectionType) -> SocketHandle
bind(pSocketHandle, cHost , nPort)
listen(pSocketHandle, nBacklog)
accept(pSocketHandle) -> pConnectionHandle
send(pConnectionHandle|pSocketHandle,cMessage)
sendto(pSocketHandle,cMessage)
recv(pConnectionHandle|pSocketHandle,nBuffer) -> cData
recvfrom(pSocketHandle, nBuffer) -> cData
connect(pSocketHandle, cHost , nPort) -> 成功時は <0> を返します
close(pSocketHandle|pConnectionHandle)
gethostbyname(cHostName) -> cIPAddress
gethostbyaddr(cIPAddress) -> aListOfHostInfo
gethostname() -> cHostName
getservbyname(cName) -> nPort
getservbyport(nPort) -> cName
用例:
load "sockets.ring"
host = gethostbyname("google.com")
? host
line()
? gethostbyaddr(host)
line()
? gethostname()
line()
? getservbyname("ftp")
line()
? getservbyport(21)
func line ? copy("=",30)
定数¶
アドレス系統:
AF_INET # IPV4 を使用します。
AF_INET6 # IPV6 を使用します。
接続方法:
SOCK_STREAM # TCP プロトコルを使用します。
SOCK_DGRAM # UDP プロトコルを使用します。