º»¹®/³»¿ë
¼¹ö¿¡ µî·ÏµÈ ¸ðµç »ç¿ëÀÚ¿¡°Ô ¼¹ö·Î º¸³»¿Â ¸Þ¼¼Áö¸¦ »Ñ·ÁÁÖ´Â ÇüÅ¿¡ ÇÔ¼ö·Î¼ ¸Þ¼¼ÁöÀÇ Çüŵµ ºñ±³ÇÏ¸ç °¢ »ç¿ëÀڵ鿡°Ô ¸Þ¼¼Áö¸¦ º¸³»ÁÖ´Â ÀÏÀ» ÇÏ°Ô µË´Ï´Ù.
void send_message(struct sockaddr_in *enter,char *rline,int i,int s)
{
int j,length,n;
if(strstr(rline, escapechar) != NULL)
removeClient(i);
else{
n = strlen(rline);
for (j = 0; j < num_chat; j++){
length=sizeof(enter[j]);
sendto(s,rline,n,0,(struct sockaddr *)&enter[j],length);
}
}
}
enter[]¿¡ µî·ÏµÈ Ŭ¶óÀÌ¾ðÆ®¿¡ ¹øÈ£¸¦ ÀÎÀÚ·Î ¹Þ¾Æ¼ ±× »ç¿ëÀÚ¸¦ ¾ø¾Ö°í ÇÑ Ä¾¿ ´ç±â´Â ¿ªÇÒÀ» ÇÏ°Ô µÇ¾î Ŭ¶óÀÌ¾ðÆ®¸¦ ¾ø°Ô µÈ´Ù.
void removeClient(int i)
{
if(i != num_chat-1)
enter[i] = enter[num_chat-1];
num_chat--;
printf(`äÆÃ Âü°¡ÀÚ 1¸í Å»Åð. ÇöÀç Âü°¡ÀÚ ¼ö = %d\\n`, num_chat);
}
¡á äÆÃ Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥
äÆÃ Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥(client.c)Àº »ç¿ëÀÚÀÇ ÀÔ·Â ¸Þ½ÃÁö¸¦ ¼¹ö·Î Àü¼ÛÇϰí, ¼¹ö°¡ º¸³»¿Â ¸ðµç ¸Þ½ÃÁö¸¦ »ç¿ëÀÚ È¸é¿¡ Ãâ·ÂÇÑ´Ù. ¾Æ·¡´Â client.cÀÇ »ç¿ë ¹æ¹ýÀÌ´Ù. client°¡ ¼öÇàµÇ±â À§Çؼ´Â¡¦(»ý·«)