<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>http://junhoahn.kr/noriwiki/index.php?action=history&amp;feed=atom&amp;title=%EC%86%8C%EC%BC%93</id>
	<title>소켓 - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="http://junhoahn.kr/noriwiki/index.php?action=history&amp;feed=atom&amp;title=%EC%86%8C%EC%BC%93"/>
	<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=%EC%86%8C%EC%BC%93&amp;action=history"/>
	<updated>2026-06-14T08:48:30Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://junhoahn.kr/noriwiki/index.php?title=%EC%86%8C%EC%BC%93&amp;diff=1278&amp;oldid=prev</id>
		<title>Ahn9807: 새 문서: 분류:애플리케이션 계층 == 개요 == &#039;&#039;&#039;네트워크 소켓&#039;&#039;&#039;은 컴퓨터 네트워크를 경유하는 프로세스 간 통신의 종착점이다. 오늘날 컴퓨터 간 통신의 대부분은 인터넷 프로토콜을 기반으로 하고 있으므로, 대부분의 네트워크 소켓은 &#039;&#039;&#039;인터넷 소켓&#039;&#039;&#039;이다. 네트워크 통신을 위한 프로그램들은 소켓을 생성하고, 이 소켓을 통해서 서로 데이터를 교환한다. 소켓은 RFC 147...</title>
		<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=%EC%86%8C%EC%BC%93&amp;diff=1278&amp;oldid=prev"/>
		<updated>2023-06-08T09:35:03Z</updated>

		<summary type="html">&lt;p&gt;새 문서: &lt;a href=&quot;/noriwiki/index.php?title=%EB%B6%84%EB%A5%98:%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98_%EA%B3%84%EC%B8%B5&quot; title=&quot;분류:애플리케이션 계층&quot;&gt;분류:애플리케이션 계층&lt;/a&gt; == 개요 == &amp;#039;&amp;#039;&amp;#039;네트워크 소켓&amp;#039;&amp;#039;&amp;#039;은 컴퓨터 네트워크를 경유하는 프로세스 간 통신의 종착점이다. 오늘날 컴퓨터 간 통신의 대부분은 인터넷 프로토콜을 기반으로 하고 있으므로, 대부분의 네트워크 소켓은 &amp;#039;&amp;#039;&amp;#039;인터넷 소켓&amp;#039;&amp;#039;&amp;#039;이다. 네트워크 통신을 위한 프로그램들은 소켓을 생성하고, 이 소켓을 통해서 서로 데이터를 교환한다. 소켓은 RFC 147...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[분류:애플리케이션 계층]]&lt;br /&gt;
== 개요 ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;네트워크 소켓&amp;#039;&amp;#039;&amp;#039;은 컴퓨터 네트워크를 경유하는 프로세스 간 통신의 종착점이다. 오늘날 컴퓨터 간 통신의 대부분은 인터넷 프로토콜을 기반으로 하고 있으므로, 대부분의 네트워크 소켓은 &amp;#039;&amp;#039;&amp;#039;인터넷 소켓&amp;#039;&amp;#039;&amp;#039;이다. 네트워크 통신을 위한 프로그램들은 소켓을 생성하고, 이 소켓을 통해서 서로 데이터를 교환한다. 소켓은 RFC 147에 기술사항이 정의되어 있다.&lt;br /&gt;
[[파일:소켓구조.png|프레임|오른쪽]]&lt;br /&gt;
&lt;br /&gt;
== 역사 ==&lt;br /&gt;
소켓(socket)은 버클리 대학(University of California at Berkeley)에서 만들어져 1982년 BSD(Berkeley Software Distribution) UNIX 4.1에서 처음 소개 되었으며 현재 널리 사용 되는 것은 1986년 BSD UNIX 4.3에서 개정 된 것이다, 그래서 이 소켓을 BSD소켓 또는 버클리 소켓이라고 불리며 개발자는 이를 사용하여 네트워크 개발을 효율적으로 할 수 있다.&lt;br /&gt;
&lt;br /&gt;
== 구성 ==&lt;br /&gt;
인터넷 소켓은 다음과 같은 요소들로 구성되어 있다.&lt;br /&gt;
* 인터넷 프로토콜 (TCP, UDP, raw IP)&lt;br /&gt;
* 로컬 [[IP 주소]]&lt;br /&gt;
* 로컬 [[TCP, UDP 포트|포트]]&lt;br /&gt;
* 원격 [[IP 주소]]&lt;br /&gt;
* 원격 포트&lt;br /&gt;
&lt;br /&gt;
== UDP 소켓 ==&lt;br /&gt;
=== 클라이언트 ===&lt;br /&gt;
1. 소켓 생성&amp;lt;br&amp;gt;&lt;br /&gt;
 serverPort = 12000&amp;lt;br&amp;gt;&lt;br /&gt;
 serverName = &amp;#039;hostName&amp;#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 clientSocket = socket(socket.AF_INET, socket.SOCK_DGRAM)&lt;br /&gt;
2. 메시지 전송 주고 받기&amp;lt;br&amp;gt;&lt;br /&gt;
 message = &amp;quot;What you want to transfer&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
 clientSocket.sendto(message, (serverName, serverPort))&amp;lt;br&amp;gt;&lt;br /&gt;
 modifiedMessage, serverAddress = clientSocket.recv-from(2048)&lt;br /&gt;
3. 소켓 닫기&amp;lt;br&amp;gt;&lt;br /&gt;
 clientSocket.close()&lt;br /&gt;
=== 서버 ===&lt;br /&gt;
1. 소켓 생성&amp;lt;br&amp;gt;&lt;br /&gt;
 serverPort = 12000&amp;lt;br&amp;gt;&lt;br /&gt;
 serverSocket = socket(AF_INET, SOCK_DGRAM)&amp;lt;br&amp;gt;&lt;br /&gt;
 serverSocket.bind((&amp;#039;&amp;#039;,serverPort))&lt;br /&gt;
2. 접속을 기다린다.&amp;lt;br&amp;gt;&lt;br /&gt;
 while(메시지가 올때까지) &lt;br /&gt;
3. 메시지 전송 주고 받기&amp;lt;br&amp;gt;&lt;br /&gt;
 message, clientAddress = serverSocket.recvfrom(bufferSize)&amp;lt;br&amp;gt;&lt;br /&gt;
 serverSocket.sendto(messageInfo, clientAddress)&lt;br /&gt;
4. 소켓 닫기&amp;lt;br&amp;gt;&lt;br /&gt;
 serverSocket.close()&lt;br /&gt;
&lt;br /&gt;
== TCP 소켓 ==&lt;br /&gt;
=== 클라이언트 ===&lt;br /&gt;
1. 소켓 생성&amp;lt;br&amp;gt;&lt;br /&gt;
 serverName = &amp;#039;serverName&amp;#039;&lt;br /&gt;
 serverPort = 12000&lt;br /&gt;
2. 서버 연결 요청&amp;lt;br&amp;gt;&lt;br /&gt;
 clientSocket.connect((serverName, serverPort))&lt;br /&gt;
3. 메시지 전송 주고 받기&amp;lt;br&amp;gt;&lt;br /&gt;
 clientSocket.send(MessageToSend)&amp;lt;br&amp;gt;&lt;br /&gt;
 clientSocket.recv(BufferSize)&amp;lt;br&amp;gt;&lt;br /&gt;
4. 소켓 닫기&amp;lt;br&amp;gt;&lt;br /&gt;
 clientSocket.close()&amp;lt;br&amp;gt;&lt;br /&gt;
=== 서버 ===&lt;br /&gt;
1. 소켓 생성&amp;lt;br&amp;gt;&lt;br /&gt;
 serverPort = 12000&amp;lt;br&amp;gt;&lt;br /&gt;
 serverSocket = socket(AF_INET, SOCK_STREAM)&amp;lt;br&amp;gt;&lt;br /&gt;
 serverSocket.bind((&amp;#039;&amp;#039;, serverPort))&amp;lt;br&amp;gt;&lt;br /&gt;
2. 입력 연결 요청 대기&amp;lt;br&amp;gt;&lt;br /&gt;
 serverSocket.listen(1)&amp;lt;br&amp;gt;&lt;br /&gt;
 while(accept 가 참)&amp;lt;br&amp;gt;&lt;br /&gt;
3. 연결시 새로운 소켓 생성후 저장&amp;lt;br&amp;gt;&lt;br /&gt;
 connectionSocket = serverSocket.accept()&amp;lt;br&amp;gt;&lt;br /&gt;
4. 새로운 소켓으로 통신&amp;lt;br&amp;gt;&lt;br /&gt;
 connectionSocket.send(MessageToSend)&amp;lt;br&amp;gt;&lt;br /&gt;
 connectionSocket.recv(BufferSize)&amp;lt;br&amp;gt;&lt;br /&gt;
5. 소켓 닫기&amp;lt;br&amp;gt;&lt;br /&gt;
 connectionSocket.close()&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahn9807</name></author>
	</entry>
</feed>