公司让我测试一个机具,机具跟后台之间是利用tcp连接方式,我自己写了一个小小的客户端测试机具发送到pc的数据是否正确,但是这个server端得程序怎么都接收不到机具发送过来的数据,我用tcp/udp调试工具就能收到机具发送过来的数据,明显说明我的程序有问题,大家帮忙看一下,程序如下:
import java.io.*;
import java.net.*;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Calendar;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;public class crc { /**
 * @Title: main
 * @Description: TODO(这里用一句话描述这个方法的作用)
 * @param @param args 设定文件
 * @return void 返回类型
 * @throws IOException 
 * @throws
 */
public static void main(String[] args)  {
ServerSocket svrsoc = null;
Socket soc = null;
DataInputStream   in = null;
DataOutputStream    out = null;
InetAddress clientIP = null;
String str = null,str2 = null;
try {
svrsoc = new ServerSocket(7643);//创建ServerSocket对象
System.out.println("服务器监听端口"+svrsoc.getLocalPort()+"开始....");
soc = svrsoc.accept();//调用线程阻塞直到连接建立
in = new DataInputStream (new BufferedInputStream(soc.getInputStream()));
out = new DataOutputStream  (soc.getOutputStream());
clientIP = soc.getInetAddress();
System.out.println("机具 IP 地址为:" + clientIP);
//out.println(".....");
//out.write(("asfasfd").getBytes());
//out.flush();
byte [] buf = new byte[soc.getReceiveBufferSize()];
try{
int i = in.readByte();
}catch (Exception e) {
System.out.println("error:" + e);
}
//str = in.readLine();
try{
in.close();
out.close();
soc.close();
svrsoc.close();
System.exit(0);
} catch (Exception e) {
System.out.println("error:" + e);

}
}
}
当机具连接服务器端的时候程序有反应,但是执行到
int i = in.readByte();
的时候随后就会报错  error:java.lang.nullpointerexception
我查了一下原因大概是说机具没有连接,所以soc为空,in = new DataInputStream (new BufferedInputStream(soc.getInputStream()));也就为空,执行int i = in.readByte();的时候就会报指针为空的错误。
我也尝试过用str = in.readLine();这种方法来进行连接,但是在tcp/udp调试工具里面输入数据的时候必须按一个回车服务器端才能停止阻塞,但是机具是不会给我发一个回车过来的,大家有做个这个方面的高手吗给小弟指一下错误啊!