byeong9935
408
2019-03-20 20:45:24
0
140

socket datainputstream 질문 있습니다.


socket 통신을 사용해서 client가 server에 값을 전송하는 DataOutputstream으로 하고 있습니다. client가 보내면 server는 받는 것인데 packet 종류가 4개이고 그 중에 4바이트 byte 배열로 만든 것으로 server는 받고 있습니다. 근데 지금 받는 것도 있고 못 읽는 것도 있어서 봐주시면 감사하겠습니다.
client

public void PakcetSend() {

System.out.println("TCPClient");

final ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(4);
while(socket.isConnected()) {

//Runnable runnable = new Runnable() {

exec.scheduleAtFixedRate(new Runnable() {

@Override
public void run() {

try {

if (header == 1 || header == 2) {
dos.writeByte(header);
dos.flush();
System.out.println("header" + header);

} else {
System.out.println("Invalid");
}

if(client_id == 1 || client_id != 5) {
//PropertiesRead.getProperties();

prop = new Properties();
fis = new FileInputStream(defaultPropertiesPath);
prop.load(fis);

client_id = Integer.parseInt((prop.getProperty("client_id", "1")));
System.out.println(client_id);
dos.writeByte(client_id);
dos.flush();
System.out.println("client_id " + client_id);
client_id = 2;
System.out.println("client_id " + client_id);

if(client_id == 2) {
dos.writeByte(client_id);
dos.flush();
System.out.println("client_id " + client_id);
client_id = 3;

if(client_id == 3) {
dos.writeByte(client_id);
dos.flush();
System.out.println("client_id " + client_id);
}

}

}

server

try {

while(clientInfo.socket.isConnected()) {


clientInfo.dis.readFully(header);

switch(header[0]) {

case 1:

byte headerIn = clientInfo.dis.readByte();

System.out.println("header1 " + headerIn);

break;
case 2:
byte headerIns = clientInfo.dis.readByte();

System.out.println("header2 " + headerIns);

break;
default:
//clientInfo.dis.close();
}


clientInfo.dis.readFully(client_id);

switch (client_id[3]) {

case 1:

byte headerIn = clientInfo.dis.readByte();

System.out.println("clientId1 " + headerIn);

break;
case 2:
byte headerIns = clientInfo.dis.readByte();

System.out.println("ClientId2 " + headerIns);

break;
default:
//clientInfo.dis.close();
}

0
0
  • 답변 0

  • 로그인을 하시면 답변을 등록할 수 있습니다.