之前查找过很多网上的例子,直接new一个socket对象,传ip值和端口号进去,发现在手机上运行之后,都是不行的,会出现android.os.NetworkOnMainThreadException 异常错误,弄了几天,终于发现只有通过异步线程的方法才测试出一个可以运行的代码。此程序是可以扫描服务器开放的端口,再连接,我这里是开放了60000端口,测试时连接60000的端口。需要服务器和客户端都连在同一个局域网上。我的ip地址是192.168.2.106,本例子是查找哪个端口开放,有句socket.close()被我注释掉了,可保证服务器与客户端一直通信。
Linux服务器端:编译通过之后执行,这里为方便测试,客户端发送什么数据,服务器便收到返回同样数据
#include "./Server.cc"
int main()
{
Server server;
while (true)
{
server.setPort(60000);
std::cout << "start connect...\n";
Server new_sock;
std::string pattern = ",";
//get client connect and accept it.
server.accept(new_sock);
while (true)
{
std::string ack = "";
std::string recv;
new_sock >> recv;