Classes Java relacionadas
Soquete
public class Socket extends Object
・ Função: soquete do cliente TCP ・ Método de construção: soquete (endereço INETAddress, porta int) Crie um soquete de fluxo e conecte -o ao número da porta especificada do endereço IP especificado ・ Métodos comuns: 1.GeTineTAddress Obtenha informações relevantes sobre o INETAddress 2.GeTInputStream Obtenha o fluxo de entrada do fluxo de entrada de tcpet.
ServerSocket
public class ServerSocket extends Object
・ Função: soquete do servidor TCP ・ Método de construção: ServerSocket (porta int) Crie um soquete do servidor ligado a uma porta específica. ・ Métodos comuns: 1. aceite obtenha o soquete do cliente conectado ao TCP 2.Clocado Obtenha o status fechado do ServerSocket
Lado do servidor TCP
TcpSserver.java
O servidor adota um método de threading. Cada vez que uma conexão é estabelecida, um thread Java é iniciado e uma imagem é enviada ao cliente e, em seguida, a conexão TCP é fechada.
pacote cn.xidian.tcpsocket; importar java.io.file; importar java.io.fileInputStream; importar java.io.ioException; importar java.io.outputStream; importe o java.net.net.erversocket; import java.net.Socket; {super (); this.clientSocket = clientSocket;}@substituir public void run () {try {// Obtenha o endereço IP do cliente e o nome do host string clientAddress = clientsocket.getineTAddress (). GethostAddress (); string clientHostname = clientInTEnTenPertNout.TerNoutNoutNoutNoutNoutNoutNoout. Systemen; clientAddress + ")" + "conectado com sucesso!"); System.out.println ("Agora, transfira dados da imagem ........."); long startTime = System.CurrentTimemillis (); // Obtenha outputinPreamOutputStream Out = clientInpocket.getUttStream (); // transferência de dados FILE FILHE FILHO NA = NOVO FILDRESTRAME Arquivo ("/home/gavinzhou/test.jpg")); byte [] data = new byte [4096]; int length = 0; while ((comprimento = in.read (dados)! + ClientAddress + ")" + "A transmissão da imagem é bem-sucedida," + "Time:" + ((Endtime-startTime)) + "ms"); // fechar o recurso in.close (); clientsocket.close (); strels.Println ("Close!");} catch (ioxception e [) {E.PrintSTRACTLN (Fechar! "); IoException {// Crie um serviço de conexão TCP, vincule o port serversocket tcpServer = new ServerSocket (9090); // Aceite a conexão e passe a imagem para o cliente conectado. Cada conexão TCP é um thread java while (true) {socket clusterSocket = tcpServer.accept (); new tcpServer (clusterocket) .start ();}}}Cliente TCP
TcpClient
pacote cn.xidian.tcpsocket; importar java.io.file; importar java.io.fileOutputStream; importar java.io.ioException; importar java.io.inputStream; importar java) strats.inMet.InputStream; import java. main.Socket; public class; Serviço tcp // conectar -se ao soquete do servidor TCP nativo = novo soquete (inetaddress.getLocAlHost (), 9090); // obtenha o fluxo de entrada inputStream inputStream = soket.getInputStream (); // escreva o arquivo de dados FileOut) byte [4096]; int length = 0; while ((comprimento = inputStream.read (dados))! = -1) {out.write (dados, 0, comprimento);} // fechar o recursoresultado
Primeiro, inicie o servidor na linha de comando e inicie o cliente. O resultado é o seguinte:
A imagem é relativamente pequena e muito rápida!
Resumir
O exposto acima está o conteúdo completo deste artigo sobre a programação Java para implementar um servidor TCP multitreado. Espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!