본문 바로가기

반응형

c

(32)
2010년 컴프2 Test레포트 오랜만에 학교에서 밤새면서 작성한 프로그램과 레포트... A+ 나왔으니까 됐다...ㅠㅠ 
Thread이용한 다중채팅(Client) #include #include #include #include #define LINE 1024 DWORD WINAPI ProcessInputSend(LPVOID arg); char *escape = "exit"; char userID[10]; // 유저ID char line[LINE], chatdata[LINE+1]; struct sockaddr_in server_addr; SOCKET serversocket; // 서버 연결 소켓 int main(){ WSADATA wsa; // 소켓 HANDLE hThread; // 스레드 DWORD ThreadId; int size; // 유저ID 입력 printf("Input ID : "); gets(userID); // 소켓 초기화 if(WSAStartup(M..
Thread를 이용한 다중채팅(Server) #include #include #include #include #define LINE 1024 #define MAXCLIENT 5 int maxfdp1; int chatuser;// 채팅 참가자 수 int client_s[MAXCLIENT]; char *escape = "exit"; // 종료 명령 void disconCli(int i){ // i번째 유저 계정삭제 closesocket(client_s[i]); // i번째 소켓 닫음 if(i != chatuser-1){ client_s[i] = client_s[chatuser-1]; chatuser--; // 총유저수 줄임 printf("Now On the net %d users\n", chatuser); } } int maxuser(int user)..
Select함수를 이용한 1:1 채팅(Client) #include #include #include #include #include #include #pragma comment(lib,"ws2_32.lib") void ErrorHandling(char *message) // 에러메시지 출력 { printf(message); exit(0); } int main() { WSADATA wsaData; // 소켓 변수선언 SOCKET ServerSocket; SOCKADDR_IN servAddr; fd_set read_fds; char chatData[65536]; struct timeval time = {0,0}; char *servIP = "127.0.0.1"; // 로컬호스트연결 int recvn; if(WSAStartup(MAKEWORD(2,2),&wsa..
Select함수를 이용한 1:1 채팅(Server) #include #include #include #include #include #include #include #pragma comment(lib,"ws2_32.lib") // ws2_32.lib void ErrorHandling(char *message) // 에러메시지 출력함수 { printf(message); exit(0); } int main() { WSADATA wsaData; // 소켓 변수 선언 SOCKET serverSocket; SOCKET clientSocket; SOCKADDR_IN servAddr; SOCKADDR_IN clntAddr; unsigned int clntLen=0; char chatdata[65536]; fd_set read_fds; // 셀렉트함수 사용 struct..
[컴프2]전역변수의 확장 사용(extern) #include "print.h" #include "printsquare.h" int data; void main(){ data = 3; print(); printsquare(); } 전역변수로 선언된 data 변수를 다른 파일에서 사용하기 위해서는 extern 인자를 사용하여 해당 변수가 다른곳에 이미 정의되어 있음을 명시하여야 한다. #include "print.h" extern data; void print(){ printf("Input : %d\n", data); }
[컴프2]헤더파일 중복선언 방지(ifndef & pragma once) 프로그램을 작성할 때에 헤더파일의 재정의를 방지하기 위해 보통 다음과 같은 구문을 사용한다 #ifndef _헤더명_H #define _헤더명_H ..소스본문 #endif 위릐 세줄을 다음과 같이 한줄로 줄일수 있다. #pragma once #include "print.h" void printsquare(int data){ print(data*data); } ++ 그외 define의 사용법 #define A #define A B - A = B 정의 #define A 3 - A는 3으로 정의 #define int AAA(int A) - 간단하고 짧은 함수의 경우에만 사용
[컴프2]C 파일입출력이용한 파일복사 #include #include void main(int argc, char** argv){ int size = 0; char data[256] = {0}; FILE* src = fopen(argv[1], "rt"); // 카피대상 FILE* dest = fopen(argv[2], "wt"); // 카피받음 do{ memset(data, 0, 256); // 메모리초기화 size = fread(data, 1, 255, src);// a.txt 데이터 읽어옴 fwrite(data, 1, size, dest); // b.txt에 입력 }while(size > 1); fclose(src); // 프로세스 종료 fclose(dest); system("C:\\a.txt"); // 두파일 열어서 비교 system(..

반응형