ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. socket
socket´Â endpoint socketÀ» »ý¼ºÇÑ´Ù. BSD socketÀÇ °æ¿ì ÆÄÀÏ descriptor¸¦ ¹ÝȯÇÑ´Ù. winsock socket ÇÔ¼ö´Â ¼ÒÄÏ ±â¼úÀÚ (socket descriptor) SOCKET¹Ýȯ ÇÑ´Ù. SOCKET ´Â unsigned int ÇüÀ¸·Î BSD ¼ÒÄÏÀÇ intÇü°ú ¾à°£ÀÇ Â÷À̰¡ ÀÖ´Ù. int¸¦ ½áµµ (°æ°í´Â ¹ß»ýÇÒ ¼ö ÀÖÁö¸¸) Å« ¹®Á¦´Â ¾ø´Ù. ¸ðµç°Ô ÆÄÀÏ·Î ÀçÇöµÇ´Â À¯´Ð½º¿Í ´Þ¸® À©µµ´Â ÆÄÀÏ ±â¼úÀÚ ¿Í ¼ÒÄÏ ±â¼úÀÚ°¡ ¹Ýµå½Ã ÀÏÄ¡ÇÑ´Ù°í º¼ ¼ö ¾øÀ¸¹Ç·Î SOCKETÀ» »ç¿ëÇÏ´Â°Ô ³´´Ù. SOCKET socket
{
int af,
int type,
int protocol
};
Parameter
af
ÁÖ¼Ò¿µ¿ªÀ» Á¤ÀÇÇϱâ À§Çؼ »ç¿ëÇÑ´Ù. Winsock2.h Çì´õÆÄÀÏ¿¡ Á¤ÀǵǾî ÀÖ´Ù. ³×Æ®¿öÅ©´Â ´Ù¾çÇÑ ÁÖ¼Ò¿µ¿ªÀ» °¡Áø´Ù. ¿ì¸®°¡ ¾Ë°í ÀÖ´Â IPv4 ±â¹ÝÀÇ ÀÎÅͳÝÀº AF_INET À» »ç¿ëÇÑ´Ù. ¸¸¾à IPv6 ÁÖ¼Ò ±â¹ÝÀ¸¶ó¸é AF_INET6¸¦ »ç¿ëÇÒ °ÍÀÌ´Ù. ±âŸ IPX, APPLETALK µîÀÇ ¿µ¿ªµéÀÌ ÀÖ´Ù.
type
¼ÒÄÏÀÇ Åë½Å ŸÀÔÀ» ÁöÁ¤Çϱâ À§Çؼ »ç¿ëÇÑ´Ù. Winsock2.h Çì´õÆÄÀÏ¿¡ Á¤ÀǵǾî ÀÖ´Ù.
protocol
È£½ºÆ®°£ Åë½Å¿¡ »ç¿ëÇÒ ÇÁ·ÎÅäÄÝÀ» °áÁ¤Çϱâ À§Çؼ »ç¿ëÇÑ´Ù.
¸®Åϰª
¼º°øÇϸé scoket¸¦ ¸®ÅÏÇÑ´Ù. ½ÇÆÐÇϸé INVALID_SOCKET¸¦ ¸®ÅÏÇÏ°í ´ÙÀ½°ú °°Àº error code ¸¦ ¼³Á¤ÇÑ´Ù. WSAGetLastError()¸¦ ÀÌ¿ëÇϸé error code¸¦ °¡Á®¿Ã ¼ö ÀÖ´Ù.
¿¹Á¦#include <winsock.h> #include <stdio.h> #define MAX_PACKETLEN 512 #define PORT 5552 int main() { WSADATA wsaData; int status; int SockLen; int Readn,Writen; SOCKET EndpointSocket, ClientSocket; struct sockaddr_in SockInfo, ClientSockInfo; char ReadBuffer[MAX_PACKETLEN]; if(WSAStartup(MAKEWORD(2,2),&wsaData)!= 0) { printf("error\r\n"); return 0; } EndpointSocket = socket( AF_INET, SOCK_STREAM, 0 ); if( EndpointSocket == INVALID_SOCKET ) return 1; printf("Success socket create\r\n"); ZeroMemory(&SockInfo, sizeof( struct sockaddr_in )); SockInfo.sin_family = AF_INET; SockInfo.sin_port = htons( PORT ); SockInfo.sin_addr.S_un.S_addr = htonl(INADDR_ANY); status = bind( EndpointSocket, (struct sockaddr*)&SockInfo, sizeof( struct sockaddr_in) ); if( status == SOCKET_ERROR) { printf("Bind Error\n"); return 0; } if( SOCKET_ERROR == listen( EndpointSocket, 5 )) { printf("listen Error\n"); return 0; } while(1) { ZeroMemory( &ClientSockInfo, sizeof( struct sockaddr_in ) ); SockLen = sizeof(struct sockaddr_in); ClientSocket = accept( EndpointSocket, (struct sockaddr*)&ClientSockInfo, &SockLen ); if(ClientSocket == INVALID_SOCKET) { printf("Accept Error\n"); closesocket(EndpointSocket); WSACleanup(); return 1; } printf("Accept Client\n"); Readn = recv( ClientSocket, ReadBuffer, MAX_PACKETLEN,0 ); if( Readn > 0 ) { Writen = send( ClientSocket, ReadBuffer, Readn, 0 ); } else { printf("read Error\n"); } closesocket(ClientSocket); } closesocket( EndpointSocket ); WSACleanup(); return 0; } |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|