在本地直接使用 SpringApplication.run 跑起来的没有问题能接收到数据,但是在服务器上使用nginx+tomcat部署的项目 确接收不到数据。但是服务器上的ServerSocket服务是开的,我用telnet试的没问题
public void init() {
go=true;
run = true;
try {
server=new ServerSocket(8543); //采用默认参数, 最多维持50个连接
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(server);
System.out.println("tcpServer");
Socket accept = null;
InputStream in;
OutputStream out;
byte[] arr=new byte[50];
int len=0;
String str;
String sn;
int index;
while(run) {
System.err.println("接收到数据");
try {
accept = server.accept();
in = accept.getInputStream();
logger.error(in.toString(), "进入解析数据");
len=in.read(arr);
} catch (IOException e) {
logger.error(e.getMessage(),e,"socket出错啦");
continue;
}
str=byteToString(arr,len);
index=str.indexOf(' ');
sn=str.substring(3, index);
if(map.containsKey(sn)) {
map.remove(sn);
}
map.put(sn, accept);
try {
out = accept.getOutputStream();
out.write(res);
} catch (IOException e) {
logger.error(e.getMessage(),e);
continue;
}
}
}
放在服务器进行不行,检查一下防火墙是否开了,端口是否开放了。如有帮助,麻烦采纳一下