From 0dc86d7e68852595390c14b1a658e9612cf2c9de Mon Sep 17 00:00:00 2001 From: Refik Hadzialic Date: Wed, 12 Oct 2011 19:13:01 +0200 Subject: Report writing! --- notFinishedCode/Report/test.tex | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'notFinishedCode/Report/test.tex') diff --git a/notFinishedCode/Report/test.tex b/notFinishedCode/Report/test.tex index 131abe8..23c5e7b 100644 --- a/notFinishedCode/Report/test.tex +++ b/notFinishedCode/Report/test.tex @@ -135,12 +135,12 @@ Our socket communication code is based on the example given in the Python socket We extended it into two classes, a client and a server class. We had used the TCP protocol to base our two classes on\footnote{TCP is reliable compared to UDP (i.e. transmitted packets get also delivered), packets are ordered when received and data are received in a stream (i.e. multiple packets can be read at once.)}. The Server class can be seen in the following figure. The server class is implemented to accept only local connections\footnote{More details are given in the section 7.1}. -First we determine our IP address and then create the socket and listen only for the same IP address (a different IP address than the selected one cannot connect to the server.) +First we determine our IP address and then create the socket to listen only for the same IP address (with a different IP address than the selected one a connection cannot be even established.) One has to define the port on which the server object should listen. -When receiving data one can easily define the timeout to be raised if data are not received in the timeout range. While testing the server class we had the problem to listen on the same port if it was closed and started again in less than 60 seconds. We got the error message: "Address already in use". -This is not known as an error but rather an option to help the server to catch lost live packets. -We solved the problem by setting the socket options with the \emph{SO\_REUSEADDR} parameter. This enabled us to get around the error when we tried to restart our server application and it would not start. -Before solving the problem without using the socket parameter, we had another solution to get around this problem by killing the application running the port. +When receiving data one can easily define the timeout to be raised if data are not received in the timeout range or set it to \emph{0} to infinitely wait for the buffer to be filled with received data. While testing the server class we had the problem to listen on the same port if the application was forcibly\footnote{Manually closed using CTRL+C and run again.} restarted in less than 60 seconds. We got the error message: \emph{"Address already in use"}. +This is not known as error behavior but rather an option to help the server to catch lost live packets (i.e. packets that are still in the network looking for it is goal destination.) +We solved the problem by changing the socket options with the \emph{SO\_REUSEADDR} parameter. This enabled us to get around the error when we tried to restart our server application. +Before solving the problem without using the socket parameter, we had another solution to get around this problem by killing the application running the port, this old method is obsolete now. \begin{figure}[ht!] \centering \includegraphics[width=97mm]{ServerHandlerClass.png} -- cgit v1.2.3-55-g7522