C#Udp + Python
当项目需要真机测试时,且必须在手机上才能测试时,这个找Bug的过程是非常痛苦的。在这里我们可以自己写一个Udp Log类,然后电脑运行自己写好的Python脚本,这样就可以完成实时Log到电脑了。
C#代码部分
public class LogToServer {
private static IPAddress GroupAddress = IPAddress.Parse("192.168.1.106");
private static int GroupPort = 12345;
private static UdpClient sender;
private static IPEndPoint groupEP;
private static string Prefix = ">";
public static void Send(string message) {
sender = new UdpClient();
groupEP = new IPEndPoint(GroupAddress, GroupPort);
message = Prefix + GetTime() + message;
try {
byte[] bytes = Encoding.ASCII.GetBytes(message);
sender.Send(bytes, bytes.Length, groupEP);
sender.Close();
} catch(Exception e) {
}
}
private static string GetTime() {
string str = "";
DateTime now = DateTime.Now;
str = now.ToString("HH:mm:ss.fff") + " ";
str = "[" + str + "]" + ": ";
return str;
}
}
在这里写好自己需要Log的电脑上的IP,以及确认端口是否被占用。当然这里也可以通过判断当前的环境是否为手机端,然后不同的平台Debug的方式不一样,这样我们可以在写代码时,调用同一个API,然后做不同的事。
Python 部分
#!/usr/bin/python
from socket import *
HOST = '192.168.1.106'
PORT = 12345
s = socket(AF_INET, SOCK_DGRAM)
s.bind((HOST, PORT))
print 'Waiting...'
while True :
data, address = s.recvfrom(1024)
print data
s.close()
print 'over'
我的运行环境是Mac, 所以我可以直接在Terminal上面 ./这个文件的名字 来运行。
Comments | NOTHING