간단한 네트워크 채팅 프로그램 구현

소개 소켓

또한 "소켓"로 알려진 소켓이 응용 프로그램은 일반적으로 "소켓"네트워크 요청 또는 네트워크 요청, 호스트 간 또는 컴퓨터가 통신 할 수 사이의 공정에 따라 발행된다.

양방향 통신을 통해 네트워크에 두 프로그램은 소켓의 연결 종료라는 데이터 교환을 실현합니다.

포트 번호 (소켓)의 적어도 하나의 쌍에 대한 네트워크 통신 접속을 설정. 소켓은 TCP / IP 캡슐화를 들어, TCP / IP도 사용할 웹 개발을 할 프로그래머를위한 인터페이스를 제공 본질적으로 프로그래밍 인터페이스 (API)입니다
소켓 엔진 네트워크 통신 할 수있는 기능을 제공하며 HTTP 승용차, 포장 또는 디스플레이 데이터의 특정 형태, 이것은 소켓 인터페이스 프로그래밍입니다.
즉, 소켓을 통해, 우리는 신속하게 네트워크 프로그래밍을 달성 할 수있다.

소켓 프로그래밍 아이디어

TCP 서버 :

1 로컬 IP 및 포트에 소켓을 바인드 소켓을 만들 수 있습니다

   # Socket.socket (socket.AF_INET, socket.SOCK_STREAM), s.bind ()

연결 번호를 s.listen 2 시작 청취 ()

3) (순환은, 클라이언트 #의 s.accept에서 연결 요청을 수락 계속 입력

4 s.sendall 후, 전송 된 데이터를 수신하고, ()은 다른 데이터 # 1 s.recv를 보낸다 ()

전송이 완료되면도 5에 도시 된 바와 같이, 소켓 ()의 폐쇄 # s.close 인

 

TCP 클라이언트 :

1, 소켓을 만들고 원격 주소를 연결

       # Socket.socket (socket.AF_INET, socket.SOCK_STREAM), s.connect ()

연결 후 2) (전송 및 데이터 # 1 s.sendall ()를 수신 s.recv

송신이 완료된 후 3 소켓) (# 폐쇄 된 s.close 인

 

코드 :

클라이언트 :

import socket
s1=socket.socket()
address = ('127.0.0.1', 1314)
s1.connect(address)

while True:
  word=raw_input('input ur word plz: ')


  s1.send(word.encode('utf-8'))
  data= s1.recv(1024)
  if word=="quit":
    break
  print(data.encode('utf-8'))
s1.close()

 

服务端:

import socket
s=socket.socket()
address=('127.0.0.1',1314)
s.bind(address)

s.listen(5)
while True:
c,addr=s.accept()
print 'address:',addr
while True:
  data=c.recv(1024)
  print(data.encode('utf-8'))
  word=raw_input('input ur word plz: ')
  c.send(word.encode('utf-8'))

结果图:

추천

출처www.cnblogs.com/wjt1996/p/12026400.html