From: maruhiro
ßèl: Ýèɬ÷µ½\PbgÌ. ¸sÌÆ«-1
ßèl: Vµ¢óÌUPDpacketÖÌ|C^. ªÈ¢ÈǸsÌÆ«NULL
ßèl: Vµ¢óÌUPDpacketÌzñÖÌ|C^. ªÈ¢ÈǸsÌÆ«NULL
TvR[h
+
+
+// 2ÂÌ\Pbgð\PbgZbgÉÁ¦é
+//SDLNet_SocketSet set;
+//UDPsocket udpsock;
+//TCPsocket tcpsock;
+int numused;
+
+numused=SDLNet_UDP_AddSocket(set,udpsock);
+if(numused==-1) {
+ printf("SDLNet_AddSocket: %s\n", SDLNet_GetError());
+ // \PbgZbgðàÁÆ嫵Äâè¼·Kvª é©àµêÈ¢...
+}
+numused=SDLNet_TCP_AddSocket(set,tcpsock);
+if(numused==-1) {
+ printf("SDLNet_AddSocket: %s\n", SDLNet_GetError());
+ // \PbgZbgðàÁÆ嫵Äâè¼·Kvª é©àµêÈ¢...
+}
+
+QÆ
SDLNet_AllocSocketSet,
SDLNet_DelSocket,
diff --git a/SDLNet_AllocPacket.html b/SDLNet_AllocPacket.html
index ae08bfb..be1f5cc 100644
--- a/SDLNet_AllocPacket.html
+++ b/SDLNet_AllocPacket.html
@@ -27,6 +27,16 @@
TvR[h
+
+
+// \PbgZbgððú·é
+//SDLNet_SocketSet set;
+
+SDLNet_FreeSocketSet(set);
+set=NULL; // ±êͱÌZbgªmÛ³êĢȢ±ÆðL¯·é¯ÉÈé
+
+QÆ
SDLNet_AllocPacketV,
SDLNet_ResizePacket,
diff --git a/SDLNet_AllocPacketV.html b/SDLNet_AllocPacketV.html
index 8cc82ba..233de52 100644
--- a/SDLNet_AllocPacketV.html
+++ b/SDLNet_AllocPacketV.html
@@ -29,6 +29,23 @@
TvR[h
+
+
+// Vµ¢1024byteðmÛµ½10pPbgÌUDPpacketzñ𶬷é
+UDPpacket **packetV;
+
+packetV=SDLNet_AllocPacketV(10, 1024);
+if(!packetV) {
+ printf("SDLNet_AllocPacketV: %s\n", SDLNet_GetError());
+ // pPbgð¶¬Å«È©Á½êÌðsíȯêÎÈçÈ¢¾ë¤
+}
+else {
+ // Vµ¢pPbgzñÌðs¤
+ // g¢IíÁ½çSDLNet_FreePacketVűÌpPbgzñððú·é
+}
+
+QÆ
SDLNet_AllocPacket,
SDLNet_FreePacket,
diff --git a/SDLNet_AllocSocketSet.html b/SDLNet_AllocSocketSet.html
index 1f197fa..b110435 100644
--- a/SDLNet_AllocSocketSet.html
+++ b/SDLNet_AllocSocketSet.html
@@ -24,6 +24,19 @@
ÅåÅmaxsocketsÌ\PbgðÄÅ«é\PbgZbg𶬷é.
¯¶\PbgZbgÅUDPÆTCP̼ûðµ¦é.
+
+// 16Ì\Pbgðµ¤\PbgZbg𶬷é
+SDLNet_SocketSet set;
+
+set=SDLNet_AllocSocketSet(16);
+if(!set) {
+ printf("SDLNet_AllocSocketSet: %s\n", SDLNet_GetError());
+ exit(1); // ÙÆñÇÌê±êÍv½IÈG[Å éª, ]Þæ¤ÉµÄæ¢
+}
+
+
ßèl: ®Ì\PbgÌ. ¸sÌÆ«-1. ±ÌÆ«Ó¡Ì éG[bZ[W;çêÈ¢. \PbgZbgªó(`FbN·×«à̪Ȣ)ÌÆ«à-1
+
+
+// 1bÔ\PbgÌ®ð`FbN·é
+//SDLNet_SocketSet set;
+int numready;
+
+numready=SDLNet_CheckSockets(set, 1000);
+if(numready==-1) {
+ printf("SDLNet_CheckSockets: %s\n", SDLNet_GetError());
+ // ÙÆñÇÌê±êÍVXeG[Å é. perrorª[U̯ÉÈé¾ë¤
+ perror("SDLNet_CheckSockets");
+}
+else if(numready) {
+ printf("%d ÂÌ\Pbgª®!\n",numready);
+ // SÄÌ\PbgðSDLNet_SocketReadyÅ`FbNµ, ®ÌàÌð¦é
+}
+
+
ßèl: ¬÷ÌÆ«setàÌ\PbgÌ, ¸sÌÆ«-1
+
+
+// \PbgZbg©ç2ÂÌ\Pbgðí·é
+//SDLNet_SocketSet set;
+//UDPsocket udpsock;
+//TCPsocket tcpsock;
+int numused;
+
+numused=SDLNet_UDP_DelSocket(set,udpsock);
+if(numused==-1) {
+ printf("SDLNet_DelSocket: %s\n", SDLNet_GetError());
+ // °ç\PbgªZbg³êĢȢ
+}
+numused=SDLNet_TCP_DelSocket(set,tcpsock);
+if(numused==-1) {
+ printf("SDLNet_DelSocket: %s\n", SDLNet_GetError());
+ // °ç\PbgªZbg³êĢȢ
+}
+
+
+
+// UDPpacketððú·é
+//UDPpacket *packet;
+
+SDLNet_FreePacket(packet);
+packet=NULL; // ðú³ê½±Æðmé¯ÉÈé
+
+
+
+// UDPpacketzñððú·é
+//UDPpacket **packetV;
+
+SDLNet_FreePacketV(packetV);
+packetV=NULL; // ðú³ê½±Æðmé¯ÉÈé
+
+
+
+// \PbgZbgððú·é
+//SDLNet_SocketSet set;
+
+SDLNet_FreeSocketSet(set);
+set=NULL; // ±êͱÌZbgªmÛ³êĢȢ±ÆðL¯·é¯ÉÈé
+
+
ßèl: lªÇßéÅãɶµ½G[ÌRÖÌchar^|C^
+
+
+printf("ÈñıÁ½AG[¾ : %s", SDLNet_GetError());
+
+
ßèl: ¬÷ÌÆ«0, ¸sÌÆ«-1
+
+
+if(SDL_Init(0)==-1) {
+ printf("SDL_Init: %s\n", SDL_GetError());
+ exit(1);
+}
+if(SDLNet_Init()==-1) {
+ printf("SDLNet_Init: %s\n", SDLNet_GetError());
+ exit(2);
+}
+
+
+
+SDL_version compile_version;
+const SDL_version *link_version=SDLNet_Linked_Version();
+SDL_NET_VERSION(&compile_version);
+printf("RpCÌSDL_netÌo[W: %d.%d.%d\n",
+ compile_version.major,
+ compile_version.minor,
+ compile_version.patch);
+printf("ÀsÌSDL_netÌo[W: %d.%d.%d\n",
+ link_version->major,
+ link_version->minor,
+ link_version->patch);
+
+
+
+SDLNet_Quit();
+// ±±Å SDL_Quit(); µÄà梵, µÈÄàæ¢
+
+
+
+// ±ÌzXgÅg¤½ßÉf[^obt@©çlð¾é
+//char *ptr; // ±Ì|C^ÉÍf[^ðùÉóMµÄ¢éÆ·é
+Sint16 number;
+number=(Sint16) SDLNet_Read16(ptr);
+// f[^ÍzXgÌoCgÉÈèg¤õªÅ«½
+
+
+
+// ±ÌzXgÅg¤½ßÉf[^obt@©çlð¾é
+//char *ptr; // ±Ì|C^ÉÍf[^ðùÉóMµÄ¢éÆ·é
+Uint32 number;
+number=SDLNet_Read32(ptr);
+// f[^ÍzXgÌoCgÉÈèg¤õªÅ«½
+
+
ßèl: Vµ¢pPbgÌf[^obt@ÌTCY. vµ½TCY¢Èç¸s
+
+
+// UDPpacketÌf[^TCYð2048byteÉÏX·é
+//UDPpacket *packet;
+int newsize;
+
+newsize=SDLNet_ResizePacket(packet, 2048);
+if(newsize<2048) {
+ printf("SDLNet_ResizePacket: %s\n", SDLNet_GetError());
+ // wèµ½TCYÌobt@ª¾çêÈ©Á½êÌðs¤Kvª é©àµêÈ¢
+}
+else {
+ // ±±ÅTCYÏXãÌðs¤
+}
+
+
ßèl: ¬÷ÌÆ«0, AhXªðÅ«È¢ÈǸsÌÆ«-1Å, address.hostÉINADDR_NONEªãü³êé.
+
+|[g1234ÌSÄÌC^[tF[XÅLISTEN·é:
+
+
+
+// |[g1234ÌT[oÌIPaddress𶬷é
+IPaddress ipaddress;
+SDLNet_ResolveHost(&ipaddress, NULL, 1234);
+
+
+"host.domain.ext"Ì|[g1234ÉÚ±·éNCAg:
+
+
+
+// zXg¼"host.domain.ext"Ì|[g1234ÌIPaddress𶬷é
+// ±êÍNCAgÅgíêé
+IPaddress ipaddress;
+SDLNet_ResolveHost(&ipaddress, "host.domain.ext", 1234);
+
+
+
+// ipaddressÌAhXÌzXg¼ðð·é
+//IPaddress ipaddress;
+char *host;
+if(!(host=SDLNet_ResolveIP(&ipaddress))) {
+ printf("SDLNet_ResolveIP: %s\n", SDLNet_GetError());
+ exit(1);
+}
+
+
ßèl: ®ÌÆ«0ÈO, ®ÅȢƫ0
+
+
+// ³ÀÉÚ±µæ¤Æ·é
+//SDLNet_SocketSet set;
+//TCPsocket serversock, client;
+int numready;
+
+numready=SDLNet_CheckSockets(set, 1000);
+if(numready==-1) {
+ printf("SDLNet_CheckSockets: %s\n", SDLNet_GetError());
+ // ÙÆñÇÌê±êÍVXeG[Å é. perrorª[U̯ÉÈé¾ë¤
+ perror("SDLNet_CheckSockets");
+}
+else if(numready) {
+ printf("There are %d sockets with activity!\n",numready);
+ // SDLNet_SocketReadyÅSÄÌ\Pbgð`FbNµ®ÌàÌðµ¤
+ if(SDLNet_SocketReady(serversock)) {
+ client=SDLNet_TCP_Accept(serversock);
+ if(client) {
+ // ±±Åclientðg¤
+ }
+ }
+}
+
+
+
+// Ú±ðserver_tcpsockÉACCEPT·é
+TCPsocket new_tcpsock;
+
+new_tcpsock=SDLNet_TCP_Accept(server_tcpsock);
+if(!new_tcpsock) {
+ printf("SDLNet_TCP_Accept: %s\n", SDLNet_GetError());
+}
+else {
+ // ±±Ånew_tcpsockÅÊM·é
+}
+
+
+
+// sockÌÚ±ð¶é
+//TCPsocket sock;
+
+SDLNet_TCP_Close(sock);
+
+
ßèl: ¬÷ÌÆ«IPaddress. ¸sܽÍT[oÌ\PbgÌÆ«NULL
+
+
+// [gÌIPÆ|[gð¾é
+//TCPsocket new_tcpsock;
+IPaddress *remote_ip;
+
+remote_ip=SDLNet_TCP_GetPeerAddress(new_tcpsock);
+if(!remote_ip) {
+ printf("SDLNet_TCP_GetPeerAddress: %s\n", SDLNet_GetError());
+ printf("±êÍ°çT[oÌ\PbgÅ é\n");
+}
+else {
+ // ±±ÅIPaddressÌîñÌ\¦ÈÇð·é...
+}
+
+
+
+
+
+// TCPÅlocalhostÌ|[g9999ÉÚ±·é (NCAg)
+IPaddress ip;
+TCPsocket tcpsock;
+
+if(SDLNet_ResolveHost(&ip,"localhost",9999)==-1) {
+ printf("SDLNet_ResolveHost: %s\n", SDLNet_GetError());
+ exit(1);
+}
+
+tcpsock=SDLNet_TCP_Open(&ip);
+if(!tcpsock) {
+ printf("SDLNet_TCP_Open: %s\n", SDLNet_GetError());
+ exit(2);
+}
+
+
+
+
+
+
+// |[g9999ÅLISTEN·éTCP\Pbg𶬷é (T[o)
+IPaddress ip;
+TCPsocket tcpsock;
+
+if(SDLNet_ResolveHost(&ip,NULL,9999)==-1) {
+ printf("SDLNet_ResolveHost: %s\n", SDLNet_GetError());
+ exit(1);
+}
+
+tcpsock=SDLNet_TCP_Open(&ip);
+if(!tcpsock) {
+ printf("SDLNet_TCP_Open: %s\n", SDLNet_GetError());
+ exit(2);
+}
+
+
+
+// sock©ç¢Â©ÌeLXgðóM·é
+//TCPsocket sock;
+#define MAXLEN 1024
+int result;
+char msg[MAXLEN];
+
+result=SDLNet_TCP_Recv(sock,msg,MAXLEN);
+if(result%lt;=0) {
+ // G[ª¶µ½êͳ·é±ÆàÅ«é
+ // °ç»ÝÍg¦È¢¾¯ÈÌÅ, Øf·éÆæ¢
+}
+printf("óMµ½: \"%s\"\n",msg);
+
+
ßèl: Mµ½oCg. NCAgªØfµ½ÈÇG[ª¶µ½ê, lenæ謳¢êª é
+
+
+// sockÅhelloðM·é
+//TCPsocket sock;
+int len,result;
+char *msg="Hello!";
+
+len=strlen(msg)+1; // I[ÉÍNUL¶ª é
+result=SDLNet_TCP_Send(sock,msg,len);
+if(result<len) {
+ printf("SDLNet_TCP_Send: %s\n", SDLNet_GetError());
+ // °ç»ÝÍg¦È¢¾¯ÈÌÅ, Øf·éÆæ¢
+}
+
+
+
+// AhXÆÅÌó«`lðoCh·é
+//UDPsocket udpsock;
+//IPaddress *address;
+int channel;
+
+channel=SDLNet_UDP_Bind(udpsock, -1, address);
+if(channel==-1) {
+ printf("SDLNet_UDP_Bind: %s\n", SDLNet_GetError());
+ // ±±ÅoChɸsµ½Æ«Ìð¨±È¤
+}
+
+
+
+// UDPsocketÌ`l0ÌSÄÌAhXÌoChðð·é
+//UDPsocket udpsock;
+
+SDLNet_UDP_Close(udpsock);
+udpsock=NULL; // ±êͱÌUDPSocketªg¦ÈÈÁ½±Æðmé¯ÉÈé
+
+
+
+
+// UDPsocketÌ`l0ÉoCh³ê½AhXð¾é
+//UDPsocket udpsock;
+IPaddress *address;
+
+address=SDLNet_UDP_GetPeerAddress(udpsock, 0);
+if(!address) {
+ printf("SDLNet_UDP_GetPeerAddress: %s\n", SDLNet_GetError());
+ // ±±ÅAhXð¾çêÈ©Á½êÌðs¤
+}
+else {
+ // ±±Åaddress->hostÆaddress->portÌ\¦ÈÇð·é
+}
+
+
ßèl: ¬÷ÌÆ«IPaddressÖÌ|C^. oCh³êĢȢ`lÈǸsÌÆ«NULL diff --git a/SDLNet_UDP_Open.html b/SDLNet_UDP_Open.html index 11d8051..8b3773b 100644 --- a/SDLNet_UDP_Open.html +++ b/SDLNet_UDP_Open.html @@ -40,6 +40,35 @@ TCP »¤·êÎNCAgÍíÉ|[gðg¦é. NCAgÍT[oÉÔ·|[gðmç¹é±ÆªÅ«, T[oÍDZÉÔ·©ðmé½ßÉÍPÉó¯æÁ½pPbgð©êÎæ¢.
+
+
+
+
+
+// |[g6666ÌUDPsocket𶬷é (T[o)
+UDPsocket udpsock;
+
+udpsock=SDLNet_UDP_Open(6666);
+if(!udpsock) {
+ printf("SDLNet_UDP_Open: %s\n", SDLNet_GetError());
+ exit(2);
+}
+
+
+
+
+// sÁèÌ|[gÌUDPsocket𶬷é (NCAg)
+UDPsocket udpsock;
+
+udpsock=SDLNet_UDP_Open(0);
+if(!udpsock) {
+ printf("SDLNet_UDP_Open: %s\n", SDLNet_GetError());
+ exit(2);
+}
+
+
ßèl: pPbgðóMµ½Æ«1, pPbgðóMµÈ©Á½Æ«0, ¸sÌÆ«-1
+
+
+// UDPpPbgÌóMðÒÂ
+//UDPsocket udpsock;
+UDPpacket packet;
+int numrecv;
+
+numrecv=SDLNet_UDP_Recv(udpsock, &packet);
+if(numrecv) {
+ // ±±Åpacketð·é
+}
+
+
ßèl: óMµ½pPbgÌ. pPbgðóMµÈ©Á½Æ«0, ¸sÌÆ«-1
+
+
+// UDPpPbgÌóMðÒÂ
+//UDPsocket udpsock;
+//UDPpacket **packetV;
+int numrecv, i;
+
+numrecv=SDLNet_UDP_RecvV(udpsock, &packetV);
+if(numrecv==-1) {
+ // G[ª¶µ½êÍPÉSDL_GetErrorÌbZ[Wð\¦·é¾¯Å梩àµêÈ¢
+}
+for(i=0; i<numrecv; i++) {
+ // ±±ÅpacketV[i]ð·é
+}
+
+
+
+
+
+// pPbg`lchannelðgÁÄUDPsocketÅpPbgðM·é
+//UDPsocket udpsock;
+//UDPpacket *packet;
+int numsent;
+
+numsent=SDLNet_UDP_Send(udpsock, packet->channel, packet);
+if(!numsent) {
+ printf("SDLNet_UDP_Send: %s\n", SDLNet_GetError());
+ // ±±ÅMɸsµ½êÌðs¤
+ // °ç`lÉAhXªoCh³êĢȢ¾¯Å é...
+}
+
+
+à`lÌÝèÅ1ÂÌpPbgðM·éû@ÍÌÊèÅ é.
+ÅIIÉÍÀÛÉÍSDLNet_UDP_SendðÄñÅ¢é.
+
+
+
+// à`lÅ1ÂÌpPbgðM·é
+//UDPsocket udpsock;
+//UDPpacket *packet;
+int numsent;
+
+numsent=SDLNet_UDP_SendV(sock, &packet, 1);
+if(!numsent) {
+ printf("SDLNet_UDP_SendV: %s\n", SDLNet_GetError());
+ // ±±ÅMɸsµ½êÌðs¤
+ // °ç`lÉAhXªoCh³êĢȢ¾¯Å é...
+}
+
+
ßèl: SpPbgÌMµ½MæÌv. ¸sÌÆ«0
+
+
+// UDPsocketÅ10ÌpPbgzñðM·é
+//UDPsocket udpsock;
+//UDPpacket **packetV;
+int numsent;
+
+numsent=SDLNet_UDP_SendV(udpsock, packetV, 10);
+if(!numsent) {
+ printf("SDLNet_UDP_SendV: %s\n", SDLNet_GetError());
+ // ±±ÅMɸsµ½êÌðs¤
+ // °ç`lÉAhXªoCh³êĢȢ¾¯Å é...
+}
+
+
+
+// UDPsocketÌ`l0ÌSÄÌAhXÌoChðð·é
+//UDPsocket udpsock;
+
+SDLNet_UDP_Unbind(udpsock, 0);
+
+
+
+// [gzXgÉM·éõƵÄf[^obt@Élð«Þ
+char data[1024];
+Sint16 number=12345;
+SDLNet_Write16((Uint16)number,data);
+
+
+
+// [gzXgÉM·éõƵÄf[^obt@Élð«Þ
+char data[1024];
+Uint32 number=0xDEADBEEF;
+SDLNet_Write32(number,data);
+
+