server 쪽

소켓 생성

 

주소 할당(bind)

 

listen(serv_sock, 5)

listen - 클라이언트의 커넥트가 올 때까지 기다림

5 = 연결 요청 큐의 크기

아직 처리하지 않았지만 앞에 연결이 끝난 후 연결 대기 중인 것

 

 

 

통신용 소켓

accept - 연결 요청이 올 경우 받는다

serv_sock로부터 클라이언트의 주소 clnt_adr에 집어넣어서

clnt_adr_sz 사이즈도 받음

 

통신용 소켓에다가 메세지를 길이만큼 씀
while 문이 끝나는 때 = 특수한 문자 메세지를 받을 때(EOF) // read()의 종료

server client
while loop
read write
write read

-read/write 짝을 맞춰야함

연결 요청과 read/write 하는 소켓이 다름

요청을 받아들일 때 통신용 소켓을 새로 만들어서 줌

accept의 경우 그 때 만들어진 소켓을 받아서 함

클라이언트 쪽 close(sock) - EOF

 

EOF는 클라이언트 쪽에서 보내줌 // 꼭 이렇다는 규칙은 없음

 

===============================================================

client 쪽

주소를 주면 연결

클라이언트 쪽은 소켓 하나로 read/write를 다 함

주소 쓸 때는 타입 변환 struct sockaddr* //client, server 둘다

연결 된 후에 클라이언트가 먼저 write 해주고

메아리 쳐 온 것을 read

 

fputs - 화면에다가 string을 써줌

 

read 한 것 확실히 읽고 싶다면 문자열 한것에다가 0을 넣음

message[str_len] = 0

client_1
client_2

 

server_1
server_2
좌: 서버      우:클라이언트

client는 테스트 용이므로 5개 이후엔

서버도 종료

'프로그래밍 > server' 카테고리의 다른 글

Tomcat Context 경로 설정  (0) 2022.02.10
inet_addr  (0) 2019.05.08

+ Recent posts