Моя цель - отправить сообщение из python socket в java socket.Я посмотрел на ресурс, упомянутый выше.Однако я изо всех сил пытаюсь заставить клиента Python общаться с сервером Java.В основном потому, что (конец строки) в python отличается от java.
скажем, я пишу из клиента Python: сообщение 1: сообщение abcd 2: сообщение efgh 3: q (выйти)
На сервере Java: я получаю сообщение 1: abcdefghq, за которым следует исключение, потому что клиент python закрыл сокет с конца.
Может кто-нибудь предложить решение для согласованного разговора между Java и Python.
Ссылка, которую я использовал: http://www.prasannatech.net/2008/07/socket-programming-tutorial.html
Обновление : я забыл добавить, я работаю над TCP.
Мой код JAVA выглядит следующим образом: (серверсокет)
String fromclient;
ServerSocket Server = new ServerSocket (5000);
System.out.println ("TCPServer Waiting for client on port 5000");
while(true)
{
Socket connected = Server.accept();
System.out.println( " THE CLIENT"+" "+ connected.getInetAddress() +":"+connected.getPort()+" IS CONNECTED ");
BufferedReader inFromClient = new BufferedReader(new InputStreamReader (connected.getInputStream()));
while ( true )
{
fromclient = inFromClient.readLine();
if ( fromclient.equals("q") || fromclient.equals("Q") )
{
connected.close();
break;
}
else
{
System.out.println( "RECIEVED:" + fromclient );
}
}
}
Мой код PYTHON: (Клиентский сокет)
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(("localhost", 5000))
while 1:
data = raw_input ( "SEND( TYPE q or Q to Quit):" )
if (data <> 'Q' and data <> 'q'):
client_socket.send(data)
else:
client_socket.send(data)
client_socket.close()
break;
ВЫХОД ::
НА ПИТОННОЙ КОНСОЛЕ (Клиент):
ОТПРАВИТЬ (ТИП q или Q для выхода): abcd (нажатие ENTER)
ОТПРАВИТЬ (ТИП q или Q для выхода): efgh (нажатие ENTER)
ОТПРАВИТЬ (TYPE q или Q для выхода)): q (нажатие ENTER)
НА JAVA-КОНСОЛЕ (Сервер):
TCPServer Ожидание клиента на порту 5000
КЛИЕНТ /127.0.0.1: 1335 ПОДКЛЮЧЕНО
ПОЛУЧЕНО: abcdefghq