我正在尝试使用套接字将数据从我的Android手机发送到我的家庭服务器。我的服务器运行Linux,因此我使用Perl为我的服务器编写脚本代码。连接正常,我可以将数据发送到手机上运行的客户端。
问题是,当我向服务器发送一些东西(第一次尝试是一个简单的字符串)时,我在服务器端没有收到任何东西。如果我使用telnet将字符串发送到服务器,一切正常。
我现在坐在这里已经有一段时间了,我看着是否有一个类似的问题,我找不到任何针对Android讨论Perl脚本的问题。这是我的Android应用程序代码:
try {
Socket socket = new Socket("192.168.178.22", 22222);
Statusinformation("connection with server succeed");
BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
Statusinformation(input.readLine());
OutputStream outstream =socket.getOutputStream();
PrintWriter out = new PrintWriter(outstream);
out.println("This is a test message from client on phone!\n");
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
Statusinformation("connection unsucsessfull");
e.printStackTrace();
}
如果我执行上面的代码,我手机上的。
与服务器的连接成功!
在服务器端我使用此代码从套接字客户端接收字符串:
use IO::Socket;
my $server = IO::Socket::INET -> new(
Proto => 'tcp',
LocalPort => 22222,
Listen => SOMAXCONN,
);
print "Server started..\n";
while (1) {
next unless my $conect = $server -> accept();
my $childconection = fork;
if ($childconection == 0) {
handle_connection($conect);
}
}
sub handle_connection
{
my $sock = shift;
my $client_message="";
my $client_addr = $sock -> peerhost;
print "connection: $client_addr connected\n";
print $sock "hi $client_addr, you are connected!\n";
while (1) {
open (Tempfile, '>>tempfile.txt');
while ($client_message = <$sock>) {
print Tempfile $client_message;
print $client_message;
}
close (Tempfile);
}
close($sock);
exit(0);
}
答案 0 :(得分:0)