Python Server

server_socket.py
import socket
class Sock:
    def __init__(self):
        self.server = socket.socket()
        self.host = socket.gethostname()
        self.port = 5000
        self.server.bind( ( self.host, self.port ) )
        self.server.listen(5)

    def start(self):
        self.client, self.addr = self.server.accept()


    def end(self):
        self.client.close()

    def send_msg(self,msg):
        self.client.send(msg)

    def recive_msg(self):
        return self.client.recv(512)
server_Window.py
import java.awt as awt
import java.lang as lang
import javax.swing as swing
import server_socket

class Server_Win:
    def buttonPressed(self,event):
        if self.send_msg.text!="":
            self.server.send_msg(self.send_msg.text)
            self.field.text = self.field.text +"I Say :" +self.send_msg.text + "\n"
            self.send_msg.text = ""

    def exit(event):
        self.server.end()
        lang.System.exit(0)

    def recive_message(self):
        while True:
            msg = self.server.recive_msg()
            if msg!="":
                self.field.text = self.field.text +"You Say :" +msg + "\n"


    def keyPressed(self,event):
        if self.send_msg.text!="":
            self.server.send_msg(self.send_msg.text)
            self.field.text = self.field.text +"I Say :" +self.send_msg.text + "\n"
            self.send_msg.text = ""

    def __init__(self):
    # Create Main Frame Window
        self.win = swing.JFrame("Server", size = (200, 200), windowClosing = exit )
        self.win.contentPane.layout = awt.BorderLayout()

        self.panel_msg = swing.JPanel()
        self.panel_msg.layout = awt.FlowLayout()

        # Create Label
        self.label = swing.JLabel("Message :")
        # Create Send Button
        self.Button_send = swing.JButton("Send", preferredSize=(100, 20),actionPerformed= self.buttonPressed )
        # Create Input Field
        self.send_msg = swing.JTextField(preferredSize=(200, 20), actionPerformed= self.keyPressed )
        
        # add to Panel        
        self.panel_msg.add(self.label)
        self.panel_msg.add(self.send_msg)
        self.panel_msg.add(self.Button_send)

        # Create Message Window
        self.field = swing.JTextArea(preferredSize=(50, 1000))
        self.field.setEditable(0)
        self.scrollpane = swing.JScrollPane(self.field, preferredSize=(50, 100))

        # Add Componet to Main Frame
        self.win.contentPane.add(self.scrollpane, awt.BorderLayout.CENTER)
        self.win.contentPane.add( self.panel_msg, awt.BorderLayout.SOUTH)
        self.server = server_socket.Sock()
        self.show_Win()
        try:
            self.server.start()
        except IOError:
            print "I/O Error!!"
       

    def show_Win(self):
        self.win.pack()
        self.win.show()
main.py
# To change this template, choose Tools | Templates
# and open the template in the editor.
import thread
import server_Window

if __name__ == "__main__":
    s = server_Window.Server_Win()
    thread.start_new_thread(s.recive_message ,( ))

'Sorce Bank' 카테고리의 다른 글

Java Binary Tree  (0) 2010.03.14
Python Client  (0) 2010.03.14
PL_HW01-3 in Perl  (0) 2010.03.14
PL HW 01_2 in perl  (0) 2010.03.14
Binary Tree in Ruby  (0) 2010.03.14