Ama*_*ugh 4 python java sockets
我的目标是从python套接字向java套接字发送消息.我确实看了上面提到的资源.但是我很难让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 );
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的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;
Run Code Online (Sandbox Code Playgroud)
输出::
在PYTHON CONSOLE(客户):
发送(Q型或Q退出):abcd(按ENTER键)
发送(Q型或Q退出):efgh(按ENTER键)
发送(Q型或Q退出):q(按ENTER键)
在JAVA CONSOLE(服务器)上:
TCPServer在端口5000上等待客户端
客户端/127.0.0.1:1335已连接
收到:abcdefghq
| 归档时间: |
|
| 查看次数: |
17792 次 |
| 最近记录: |