一个简单的网络聊天程序实现

Posted 王俊韬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个简单的网络聊天程序实现相关的知识,希望对你有一定的参考价值。

socket简介

Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。

网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。

建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,
这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。
总之,通过socket,我们可以方便快捷的实现网络程序编程。

socket编程思路

TCP服务端:

1 创建套接字,绑定套接字到本地IP与端口

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

2 开始监听连接                   #s.listen()

3 进入循环,不断接受客户端的连接请求              #s.accept()

4 然后接收传来的数据,并发送给对方数据         #s.recv() , s.sendall()

5 传输完毕后,关闭套接字                     #s.close()

 

TCP客户端:

1 创建套接字,连接远端地址

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

2 连接后发送数据和接收数据          # 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\'))

结果图:

以上是关于一个简单的网络聊天程序实现的主要内容,如果未能解决你的问题,请参考以下文章

java实现一个简单的网络聊天程序

利用java的Socket实现一个简单hello/hi聊天程序

python实现一个简单的网络聊天程序

Java实现一个hello/hi的简单的网络聊天程序

Java网络编程--简单聊天程序

Java实现一个简单的网络聊天程序