No passado, escrevi um programa de bate -papo e enviei uma placa diretamente para o servidor com seqüências de caracteres e depois o encaminhei.
Agora me peço para enviar o objeto diretamente com o fluxo do objeto, testá -lo e gravar.
Na verdade, estou mais inclinado a enviar objetos com JSON.
Funções principais: o cliente envia um objeto para o servidor e o servidor o recebe. A outra maneira é quase a mesma, então não vou escrever.
O exposto acima é a arquitetura geral.
A classe de usuário são dois atributos.
Copie o código do código da seguinte forma:
pacote com.qiantu.bean;
Importar java.io.serializable;
Classe pública o usuário implementa serializável {
Private estático final serialversionUid = 1L;
Nome de string privado;
Senha de sequência privada;
public String getName () {
Nome de retorno;
}
public void setName (nome da string) {
this.name = nome;
}
Public String getPassword () {
Retornar senha;
}
Public void setPassword (senha da string) {{
this.password = senha;
}
}
Lado do servidor: objeto de usuário enviado pelo cliente:
Copie o código do código da seguinte forma:
teste de pacote;
Importar java.io.buffredInputStream;
Importar java.io.ioException;
Importar java.io.ObjectInputStream;
Importar java.net.serversocket;
Importar java.net.socket;
Importação com.qiantu.bean.user;
classe pública TestServer {
public void Start () {
tentar {
ServerSocket SS = new ServerSocket (7777);
System.out.println ("Comece a aceitar ...");
Soquete soquete = ss.accept ();
// Crie fluxo de entrada
Objectstream ois = new objectInputStream (
New bufferInputStream (Socket.getInputStream ()));
Objeto obj = ois.readObject ();
if (obj! = null) {
Usuário Usuário = (Usuário) OBJ;
System.out.println ("user:" + user.getName ());
System.out.println ("senha:" + user.getpassword ());
}
OIS.Close ();
Socket.Close ();
ss.close ();
} Catch (ioexception e) {{
E.PrintStackTrace ();
} Catch (classNotfoundException e) {{
E.PrintStackTrace ();
}
}
Public static void main (string [] args) {{
Novo TestServer ().
}
}
Cliente: envie um objeto de usuário para o servidor:
Copie o código do código da seguinte forma:
cliente do pacote;
Importar java.io.ioException;
Importar java.io.ObjectputStream;
Importar java.net.socket;
Importar java.net.unknownhostException;
Importação com.qiantu.bean.user;
classe pública TestClient {
Public static void main (string [] args) {{
novo teste ().
}
public void Start () {
tentar {
Soquete de soquete = novo soquete ("127.0.0.1", 7777);
// Crie fluxo de entrada
ObjectputStream ooS = new ObjectputStream (soquete
.getputStream ());
Usuário do usuário = novo usuário ();
user.setName ("Liang guoqiao");
user.setPassword ("123456");
// Digite o objeto, certifique -se de liberar ()
OOS.WriteObject (Usuário);
oos.flush ();
OOS.Close ();
Socket.Close ();
} Catch (desconhecidohostException e) {{
E.PrintStackTrace ();
} Catch (ioexception e) {{
E.PrintStackTrace ();
}
}
}
Execute os resultados:
Preste atenção em:
A classe física "1" deve implementar a classe serializável e adicionar o serviço de identificaçãoVersionUID.
Flush () depois que o "2" envia o objeto;
"3" é mais importante.
A categoria física em ambos os lados do servidor é exatamente a mesma. Eu faço o nome há muito tempo. Essência Essência Essência