소켓과 시리얼을 동시에 하고 싶습니다.
글쓴이: skrkfql / 작성시간: 화, 2011/10/11 - 3:01오후
일단 그냥 두개를 겹쳐서 프로그래밍 했더니
error C2731: 'main' : function cannot be overloaded 에러가 뜨네요
main이 두개라서 뜨는 것 같은데 이걸 어떻게 하면 해결할 수 있을까요?
include랑 main이 나오는 함수만 좀 써보자면
#include<stdio.h> #include<winsock2.h> #include <windows.h> #include <stdlib.h> #include <stdio.h> #define BUFSIZE 100 //버퍼사이즈 설정 #pragma comment(lib,"wsock32.lib") void main(void) ............. int main(int argc, char* argv[])
main안에를
(void, int argc, char*argv[])로 써서 합쳐버려도 되는걸까요?
Forums:
......
학교숙제는 학교에서 하시는게 어떨까요?
아하핫... ^^ 공부할 게 무척 많겠는데요?
일단 써둔 헤더파일이 각각 어떤 역할을 하는지 알고는 있나요?
stdio.h 파일은 Standard I/O 헤더파일이라고 합니다. 표준 입출력 관련 라이브러리의 선언 파일이지요.
windows.h 파일은 Windows 의 API(Application Programming Interface) 헤더 파일입니다. 윈도우즈 환경에서 그래픽 인터페이스를 갖춘 프로그램을 만들기 위해, 윈도우즈 커널과 통신하기 위한 기본 기능을 정의해 둔 파일이지요.
stdlib.h 파일은 Standard Library, 표준라이브러리라고 해서 모든 OS 환경, 컴퓨터에서 기본으로 사용하는 함수들을 모아둔 라이브러리입니다.
winsock.h 파일은 Windows Socket 라이브러리, 즉 네트워크 통신을 하기 위한 기능의 라이브러리를 사용할 수 있도록 함수를 선언해 놓은 파일입니다.
이렇게 설명해도 모르실거라 생각합니다.
#include <stdio.h> 행을 두 번이나 쓸 필요도 없지만, windows.h 는 stdio.h, stdlib.h 를 내부에서 호출하여 사용하기 때문에 일부러 stdio.h, stdlib.h 를 포함할 필요는 없습니다.
그리고 main() 함수는 프로그램에 딱 하나만 있는 '주요 함수'입니다. void main(void) 와 int main(int argc, char* argv[])는 중복 선언이라서 컴파일조차 할 수 없습니다.
void main(void)는 프로그램에 전달받을 인자가 없다는 이야기이고, int main(int argc, char* argv[]) 구문은 '이 프로그램은 종료할 때, 프로세스 ID 값을 반환할 것이고, 실행 전, argc 갯수 만큼 argv 안의 문자열을 받아서 처리할 것이다.' 라는 의미입니다. 당연히 windows.h 를 쓴다면 후자의 선언을 써야 하겠지요.
윈도우즈 프로그램도 모르고, 소켓 프로그래밍도 모르고, 표준 C 문법조차 이해하지 못했는데, 벌써부터 무엇을 하고 싶다고 아무렇게나 붙이면 안되겠죠? :)
시리얼과 소켓을 동시에 열면 끝인가요?
뭘하든 상관없나요?
예를 들면 시리얼 값을 소켓으로 날린다던지? 소켓내용을 시리얼로 보여준다던지?
앞뒤 맞게 말해보시죠
기초부터 공부하셔야 할 듯...
기초부터 공부하셔야 할 듯...
----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라
이런것은 일단 검색부터..
jachine 님께서 답변을 친절히 달아주셨지만..
사실 이런것은 질문거리도 못됩니다.
왜냐하면 검색을 하면 충분히 답을 얻을수있는 내용이기 때문이죠.
http://www.winapi.co.kr 을 들어가보셔도되구요..
관심이있다면, 책과 두뇌의 고난을 통해 충분히 생각할수도 있는 문제들입니다.
질문하는것이 모두 공부를 열심히하는것은아닙니다. 검색하고 못찾았을때 생각해도 못찾았을때 그럴때 게시판에 질문하세여.
댓글 달기