목차
과제 1 : 채팅 서버 프로그램
과제 2 : 채팅 클라이언트 프로그램
과제 2 : 채팅 클라이언트 프로그램
본문내용
_addr(argv[1]);
server_addr.sin_port = htons(atoi(argv[2]));
maxfdp1 = s + 1;
FD_ZERO(&read_fds);
/*******************************************************************************************
이 부분은 처음 클라이언트가 서버로 접속을 할시 처음으로 접속한다는 표시를 해주기 위한 부분으로서 '추카추카'메세지를 보내게 된다.
*******************************************************************************************/
length = sizeof(server_addr);
sendto(s,start,strlen(start),0,(struct sockaddr *)&server_addr,length);
/*******************************************************************************************
이 루프는 TCP의 챗팅 클라이언트 와 거의 같은 부분입니다. 단지connect가 없고 보내고 받고 하는 부분입니다. 단지 다른 클라이언트에서 들어오는 메세지를 고려해서 select를 이용해서 비동기 형태로 만들었다.
*******************************************************************************************/
while(1)
{
FD_SET(0, &read_fds);
FD_SET(s, &read_fds);
if(select(maxfdp1, &read_fds, (fd_set *)0, (fd_set *)0, (struct timeval *)0) < 0)
{
printf("select error\n");
exit(0);
}
if (FD_ISSET(s, &read_fds))
{
int size;
length = sizeof(from);
if ((size = recvfrom(s,message,MAXLINE+1,0,(struct sockaddr *)&from,&length)) > 0)
{
message[size] = '\0';
printf("%s \n", message);
}
}
if (FD_ISSET(0, &read_fds)) {
if(fgets(message, MAXLINE, stdin)) {
sprintf(line, "%s %s", name, message);
length = sizeof(server_addr);
if (sendto(s,line,strlen(line),0,(struct sockaddr *)&server_addr,length)
< 0)
printf("Write error on socket.\n");
if (strstr(message, escapechar) != NULL )
{
printf("안녕히 가세요!!\n");
close(s);
exit(0);
}
}
}
}
}
server_addr.sin_port = htons(atoi(argv[2]));
maxfdp1 = s + 1;
FD_ZERO(&read_fds);
/*******************************************************************************************
이 부분은 처음 클라이언트가 서버로 접속을 할시 처음으로 접속한다는 표시를 해주기 위한 부분으로서 '추카추카'메세지를 보내게 된다.
*******************************************************************************************/
length = sizeof(server_addr);
sendto(s,start,strlen(start),0,(struct sockaddr *)&server_addr,length);
/*******************************************************************************************
이 루프는 TCP의 챗팅 클라이언트 와 거의 같은 부분입니다. 단지connect가 없고 보내고 받고 하는 부분입니다. 단지 다른 클라이언트에서 들어오는 메세지를 고려해서 select를 이용해서 비동기 형태로 만들었다.
*******************************************************************************************/
while(1)
{
FD_SET(0, &read_fds);
FD_SET(s, &read_fds);
if(select(maxfdp1, &read_fds, (fd_set *)0, (fd_set *)0, (struct timeval *)0) < 0)
{
printf("select error\n");
exit(0);
}
if (FD_ISSET(s, &read_fds))
{
int size;
length = sizeof(from);
if ((size = recvfrom(s,message,MAXLINE+1,0,(struct sockaddr *)&from,&length)) > 0)
{
message[size] = '\0';
printf("%s \n", message);
}
}
if (FD_ISSET(0, &read_fds)) {
if(fgets(message, MAXLINE, stdin)) {
sprintf(line, "%s %s", name, message);
length = sizeof(server_addr);
if (sendto(s,line,strlen(line),0,(struct sockaddr *)&server_addr,length)
< 0)
printf("Write error on socket.\n");
if (strstr(message, escapechar) != NULL )
{
printf("안녕히 가세요!!\n");
close(s);
exit(0);
}
}
}
}
}
추천자료
C로 짠 자판기 프로그램
C언어를 이용한 주택복권 프로그램 만들기
리눅스 채팅 프로그램 (메신저)
C++ 을 이용한 파일전송프로그램 구현
C++을 이용한 가위바위보 프로그램
Factorial 구하는 프로그램
C++을 이용한 학생성적관리프로그램(파일입출력) A+ 받은 자료
자바 달력 출력 프로그램
C로 작성한 내부정렬 프로그램
C언어로 이용할수 있는_프로그램
vb로짠 오목 프로그램
메일슬롯을 사용한 프로세스간 채팅프로그램
영화와 방송 프로그램에 나타난 소통의 문제
2012년도 전자공학심화 프로그램 종합설계 프로젝트 최종보고서,디지털시스템 최종보고서 - ...