Bir Python sunucusuna ve bir java istemcisine sahibim. java'dan python'a bir dize gönderildiğinde, bu tam değil. Örnek:Python sunucusu, java istemcisinden tam dizeyi almıyor
Java Kod gönderme: Helloooooooooo
Recieved Python gibi: Burada
he
lloooooooo
oo
kodlardır
Python sunucusu:
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ("localhost", 10000)
print 'starting up on %s port %s' % server_address
sock.bind(server_address)
sock.listen(5)
while True:
print 'waiting for a connection'
connection, client_address = sock.accept()
try:
print 'connection from', client_address
while True:
data = connection.recv(1024)
print 'received: ' + data
print type(data)
if data:
print 'sending data back to the client'
connection.sendall(data)
else:
print 'no more data from', client_address
break
finally:
connection.close()
Java Müşteri:
package server;
import java.io.*;
import java.net.*;
class Reciever_test {
public static void main(String args[]) throws Exception {
String sentence;
String modifiedSentence;
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
Socket clientSocket = new Socket("localhost", 10000);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
while(true)
{
sentence = inFromUser.readLine();
outToServer.writeBytes(sentence + "\n");
modifiedSentence = inFromServer.readLine();
System.out.println("FROM SERVER:" + modifiedSentence);
}
//clientSocket.close();
}
} Klaus D.is diyerek ne Boşuna
(yerine Sendall ait göndermek kullanarak), piton tarafı bir kerede tüm dizeyi yazdırmak istediğiniz yapmak, ve bunun parçaları değil? Evet, tam olarak – craigsparks
. Bütün dizeyi istiyorum çünkü daha sonra –
kullanacağım işlem için tanımlayıcı olarak kullanacağım. Daha sonra, veri tamamlanana kadar soketten veri toplaman gerekecek, belki de \ n '. –