On Tuesday, 24 October 2017 00:59:01 UTC+5:30, Justin Israel wrote:
>
>
>
> On Tue, Oct 24, 2017, 1:32 AM T Obulesu <[email protected] <javascript:>>
> wrote:
>
>>
>> This is how my code looks like:
>> import socket
>> import select
>>
>> class ChatServer:
>>
>> def __init__( self):
>> self.port = 8880;
>> self.srvsock = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
>> self.srvsock.setsockopt( socket.SOL_SOCKET, socket.SO_REUSEADDR,
>> 1 )
>> self.srvsock.bind( ("", 8880) )
>> self.srvsock.listen( 5 )
>> print("New socket bind")
>> while 1:
>> print("Waiting for new connection")
>> self.sock,(remhost,remport)=self.accept_new_connection()
>> print ('ChatServer started on port %s' % port)
>>
>> def send(self,data):
>> self.sock.send(data)
>> def receieve(self):
>> self.str=sock.recv(1024)
>> print(self.str)
>>
>>
>> I want to run this code first time when my project starts and want to
>> call send() and receive() functions from other two different python files
>> located in different path.
>>
>>
>
> Looks like what you want is for your ChatServer to be one class that has
> the responsibility of accepting socket connections, receiving, and sending
> for all connected clients. And then you want another class that is a
> ChatClient which allows a connection to the chat server on port 8880 and
> let's the client to send and receive messages. Does that sound like the
> goal? Or are you trying to just establish a bi-directional request/reply
> between two peers?
>
Exactly. I want ChatServer to be the class where 1.connection
establishment(), 2.data sending() and 3.data receiving() should be resided.
When I run my project main file, (which is not actually the Chatserver),
connection establishment(it can be a constructor or a function) of the
ChatServer should run first.
Once connection is established, another python code should send the data
through the established connection. Hence it should be able to
access/override the data sending () function og the ChatServer(which means
that i am not sending the data directly using ChatServer Function but some
other files are importing it and sending the data)
Similarly, when the client sends the data, it's not the ChatServer which is
receiving the data but another python file which imports this ChatServer
and modifies the data_receiving() function.
> Is this a simplified version of your code or the actual code you are
> running? There are some issues with this code.
>
> It starts binding and listening immediately in the constructor with no way
> to stop it. I would suggest moving it to a start method and adding a way to
> stop it. Even once you do that, it blocks the thread while accepting
> connections. Is that what you want or are you running this chat server in
> another thread?
>
> While it is accepting connections it constantly replaces the last
> connection with the next one. Is that what you are after? You have set the
> listen to 5 so it implies you expect multiple clients. But nothing is set
> up to handle each individual connection. I would expect that you are either
> going to handle a single connection at a time in that same thread, or to
> hand off the connection to a thread, or to use a select operation to handle
> accepting new connections and servicing existing ones asynchronously in the
> same thread.
>
> Can you explain what the role is, for the other two modules that want to
> use this ChatServer? Are they meant to be clients that can chat to each
> other? Or is one trying to send data and the other is trying to receive?
> Can you describe your expected workflow so I can better understand how each
> of those other modules should actually be using this ChatServer to achieve
> their goal?
>
>
>> On Saturday, 21 October 2017 16:33:27 UTC+5:30, Justin Israel wrote:
>>
>>>
>>>
>>> On Sat, Oct 21, 2017, 11:06 PM T Obulesu <[email protected]> wrote:
>>>
>>>> Hi All,
>>>>
>>>> I'm new to python3 and scratching my head to write a program for this
>>>> logic:
>>>>
>>>> classA.py
>>>> Class A:
>>>> # class for socket communication
>>>> basic init method that initializes port, address, connection
>>>>
>>>> method send(message):
>>>> # for sending any message through the given port
>>>>
>>>>
>>>> method receive():
>>>> # will be keep on listening for incoming messages
>>>>
>>>>
>>>>
>>>> classB.py
>>>>
>>>> Class B:
>>>> import the send method from class A
>>>> send the messages from this class
>>>>
>>>>
>>>> classC.py
>>>>
>>>> Class C:
>>>> import the receive method from the class A
>>>> receive all the messages from the same socket from here.
>>>>
>>>>
>>>>
>>>> Note:
>>>> classA.py, classB.py, ClassC.py are saved in different locations.
>>>>
>>>>
>>>> Can someone help me in writing the code and how can I create a single
>>>> object and use it in multiple classed?
>>>>
>>>
>>>
>>> It might help if you explain a little more concretely about what problem
>>> you are actually trying to solve. Are you trying to create a generic socket
>>> connection class that knows how to send and receive, and then use send
>>> functionality in one subclass, and receive functionality in another?
>>>
>>> What code have you written thus far and where are you stuck? At this
>>> stage it seems a bit code-golfy to try and just write your specification
>>> for you.
>>>
>>> Are you new to python 3 and looking for a newer way to solve this
>>> problem as opposed to how you would have done it via python 2? Also... Is
>>> this homework?
>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Python Programming for Autodesk Maya" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> To view this discussion on the web visit
>>>> https://groups.google.com/d/msgid/python_inside_maya/d457de3d-4353-47b4-906c-187d616cd9fe%40googlegroups.com
>>>>
>>>> <https://groups.google.com/d/msgid/python_inside_maya/d457de3d-4353-47b4-906c-187d616cd9fe%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>> --
>> You received this message because you are subscribed to the Google Groups
>> "Python Programming for Autodesk Maya" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected] <javascript:>.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/python_inside_maya/be550507-7ccd-4a99-bd56-cebfda87f24f%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/python_inside_maya/be550507-7ccd-4a99-bd56-cebfda87f24f%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
--
You received this message because you are subscribed to the Google Groups
"Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/python_inside_maya/38035268-5d27-416b-982e-4d1607177000%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.