本文實(shí)例講述了python服務(wù)器與android客戶端socket通信的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
首先,服務(wù)器端使用python完成,下面為python代碼:
代碼如下:#server.py
import socket
def getipaddrs(hostname):#只是為了顯示IP,僅僅測(cè)試一下
result = socket.getaddrinfo(hostname, None, 0, socket.SOCK_STREAM)
return [x[4][0] for x in result]
host = ''#為空代表為本地host
hostname = socket.gethostname()
hostip = getipaddrs(hostname)
print('host ip', hostip)#應(yīng)該顯示為:127.0.1.1
port = 9999 # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host, port))
s.listen(4)
while True:
conn, addr = s.accept()
print('Connected by', addr)
data = conn.recv(1024)
if not data: break
conn.sendall(data)#把接收到數(shù)據(jù)原封不動(dòng)的發(fā)送回去
print('Received', repr(data))
conn.close()
下面是Android代碼:
代碼如下:import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
public class TcpClient extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
runTcpClient();
finish();
}
private static final int TCP_SERVER_PORT = 9999;//should be same to the server port
private void runTcpClient() {
try {
Socket s = new Socket("**.**.intel.com", TCP_SERVER_PORT);//注意host改成你服務(wù)器的hostname或IP地址
BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
|
新聞熱點(diǎn)
疑難解答
圖片精選