python简单socket

发布时间:2019-08-08 07:46:20编辑:auto阅读(1406)

    1. clinet端



    2. #! /usr/bin/env python
      # -*-coding: utf-8-*-
      #这段代码是clinet端
      
      import socket   #for sockets
      import sys  #for exit
      
      try:
          #create an AF_INET, STREAM socket (TCP)
          s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
      except socket.error, msg:
          print 'Failed to create socket. Error code: ' + str(msg[0]) + ' , Error message : ' + msg[1]
          sys.exit();
      
      print 'Socket Created'
      
      host = '192.168.1.20'
      port = 8888
      
      try:
          remote_ip = socket.gethostbyname( host )
      
      except socket.gaierror:
          #could not resolve
          print 'Hostname could not be resolved. Exiting'
          sys.exit()
      
      print 'Ip address of ' + host + ' is ' + remote_ip
      
      #Connect to remote server
      s.connect((remote_ip , port))
      
      print 'Socket Connected to ' + host + ' on ip ' + remote_ip
    3. server端

    4. #! /usr/bin/env python
      # -*- coding: utf-8 -*-
      
      
      import socket
      import sys
      from thread import *
      
      HOST = ''   # Symbolic name meaning all available interfaces
      PORT = 8888 # Arbitrary non-privileged port
      
      s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
      print 'Socket created'
      
      #Bind socket to local host and port
      try:
          s.bind((HOST, PORT))
      except socket.error , msg:
          print 'Bind failed. Error Code : ' + str(msg[0]) + ' Message ' + msg[1]
          sys.exit()
      
      print 'Socket bind complete'
      
      #Start listening on socket
      s.listen(10)
      print 'Socket now listening'
      
      #Function for handling connections. This will be used to create threads
      def clientthread(conn):
          #Sending message to connected client
          conn.send('Welcome to the server. Type something and hit enter\n') #send only takes string
      
          #infinite loop so that function do not terminate and thread do not end.
          while True:
      
              #Receiving from client
              data = conn.recv(1024)
              reply = 'OK...' + data
              if not data:
                  break
      
              conn.sendall(reply)
      
          #came out of loop
          conn.close()
      
      #now keep talking with the client
      while 1:
          #wait to accept a connection - blocking call
          conn, addr = s.accept()
          print 'Connected with ' + addr[0] + ':' + str(addr[1])
      
          #start new thread takes 1st argument as a function name to be run, second is the tuple of arguments to the function.
          start_new_thread(clientthread ,(conn,))
      
      s.close()

关键字

上一篇: python操作sqlserver

下一篇: python中的字典