코스웨어/10년 시스템제어
시스템제어 4월12일 14번 선동환 보고서
알 수 없는 사용자
2010. 4. 12. 18:02
728x90
반응형
네트워크 |
서버에서 접속한 클라이언트1,2에 데이터 보내기 |
SOCKET client_sock[2]; |
int client_num = 0; |
if(client_num = 0) |
{ |
retval1 = send(client_sock[client_num],buf,strlen(buf),0); //내가 작성한 정보를 접속자에게 보낸다 |
//보낼 장소 (client_sock[client_num]) |
//보낼 데이터(buf) |
//보낼 데이터 크기 (strlen(buf)) |
} |
else if(client_num = 1) |
{ |
retval1 = send(client_sock[0],buf,strlen(buf),0); |
retval2 = send(client_sock[client_num],buf,strlen(buf),0); |
} |
우선 client_sock와 client_num을 전역 변수로 만들어 준다 |
그후 데이터를 보내는 부분인 send로 가서 client_sock을 부분을 클라이언트 1이 들어 갔을때 보낼곳과 |
클라이언트 2가 들어 갔을대 보낼 곳으로 만들기 위해 client_sock[client_num]으 부분으로 변경하여 |
두개의 클라이언트로 데이터를 보낼수 있게 만든다(client_num는 각 클라이언트를 나타낸다) |
비동기 수정 소스 |
//---------------넌 블록킹 소켓으로 전환-------- |
u_long on =1; |
retval = ioctlsocket(listen_sock,FIONBIO,&on); |
if(retval==SOCKET_ERROR) |
{ |
printf("소켓 속성 변경 실패\n"); |
return 0; |
} |
//---------------------------------------------- |
ATmega128(c과제) |
2. 1바이트 범위의 정수를 입력 받은 다음, 각각의 비트가 켜져 있으면 1, 꺼져 있으면 0을 출력하세요 |
#include <stdio.h> |
int main() |
{ |
int inum,sum,cnt; |
printf("N1의 값 : "); |
scanf("%d",&inum); |
for(sum=0;sum<8;sum++) |
{ |
cnt=(inum>>sum)&1; |
printf("결과 %d=%d\n",sum,cnt); |
} |
return 0; |
} |
12 = 0000 1100 and연산 |
0000 1100>>0 => 0000 1100 & 1 == 0 0 & 0 = 0 |
0000 1100>>1 => 0000 0110 & 1 == 0 0 & 1 = 0 |
0000 1100>>2 => 0000 0011 & 1 == 1 1 & 0 = 0 |
0000 1100>>3 => 0000 0001 & 1 == 1 1 & 1 = 1 |
0000 1100>>4 => 0000 0000 & 1 == 0 |
0000 1100>>5 => 0000 0000 & 1 == 0 |
0000 1100>>6 => 0000 0000 & 1 == 0 |
0000 1100>>7 => 0000 0000 & 1 == 0 |
5. 1바이트는 8개의 비트로 이루어집니다. 255는 8개 비트 전체가 1인 경우이고, 1은 최하위 1비트만 1인 경우입니다 |
문자 ch의 켜진 비트 개수는 몇 개입니까? 켜진 비트는 1로 설정된 비트의 다른 표현입니다 |
#include <stdio.h> |
int main() |
{ |
int sum,cnt,op=0; |
char cnum; |
printf("N1의 값 : "); |
scanf("%c",&cnum); |
for(sum=0;sum<8;sum++) |
{ |
cnt=(cnum>>sum)&1; |
if(cnt == 1) |
{ |
op++; |
} |
} |
printf("문자 %c\n",cnum); |
printf("비트 %d\n",op); |
printf("값 %d\n",cnum); |
return 0; |
} |
728x90