Red de conocimiento informático - Problemas con los teléfonos móviles - Análisis del código fuente de Tcpip

Análisis del código fuente de Tcpip

El método de escritura más básico

Lado del servidor

¿Público? ¿clase? MiTcpServer{

¿Público? ¿Electricidad estática? ¿Vacío? mian(String[]?args){

¿Probar? {

//Construir un servidor de socket con un puerto del lado del servidor de 12345;

¿ServerSocket? servidorSocket? =?¿Nuevo? server socket(12345);

// Esperando recibir la conexión del cliente de socket y obtener el objeto de socket del cliente.

//?Este método se bloqueará cuando no haya ningún cliente conectado.

¿Enchufe? ¿cliente? =?server socket. Accept();

//Obtiene la tubería de entrada del cliente de socket.

¿Entrada de flujo? ¿Sí? =?client . getinputstream();

//Obtiene la tubería de salida del cliente de socket.

¿Flujo de salida? sistema operativo=? cliente .obtener flujo de salida();

byte[]? ¿buffer? =?¿Nuevo? byte[1024];

int? Ryan. =?is.read(buffer);

system . println("->+new? string(buffer));

os.write( "¿Hola? Cliente ".getBytes());

OS.flush();

is.close();

OS.close();

cliente .close();

socket del servidor .close();

}? printstacktrace();

}

}

}

¿Cliente?

¿clase privada?

@override? run()?{

p>

¿Intentar? {

¿Socket? =? , 12345); // ¿IP es la IP del servidor?

InputStream? =?client.getinputstream();

OutputStream? /p>

out.write("¿Hola? Servidor". getBytes()); //Si la operación de lectura se realiza primero en el lado del servidor, entonces el cliente debe escribir primero. /Esto se hace alternativamente. ¿Se bloquearán todas las operaciones de lectura?

byte[] =? byte[1024];

int?=?in.read();

in.read(buffer);

system.out.println("->+ new? string(buffer));

}?catch? (IOExcepción? e)? {

e . printstacktrace();

}

}

}

}