📄 talkclient.java
字号:
package com.henry.networking;
import java.net.*;
import java.io.*;
public class TalkClient {
public static void main(String[] args) {
int port = 1500;
String server = "localhost";
Socket socket=null;
String lineToBeSent="";
BufferedReader inputFromKeyBoard;
ObjectInputStream is=null;
ObjectOutputStream os=null;
// InputStream i=null;
// OutputStream o=null;
// read arguments
if(args.length == 2) {
server = args[0];
try {
port = Integer.parseInt(args[1]);
}
catch (Exception e) {
System.out.println("server port = 1500 (default)");
port = 1500;
}
}
// connect to server
try {
socket = new Socket(server, port);
System.out.println("client socket1 is!!!!!!!: " + socket);
System.out.println("Connected with server " +
socket.getInetAddress() +
":" + socket.getPort());
}
catch (UnknownHostException e) {
System.out.println(e);
System.exit(1);
}
catch (IOException e) {
System.out.println(e);
System.exit(1);
}
try {
inputFromKeyBoard = new BufferedReader(new InputStreamReader(System.in));
System.out.println("inputFromKeyBoard reader ok");
/* i= socket.getInputStream();
System.out.println("socket getInputStream ok");
o= socket.getOutputStream();
System.out.println("socket getOutputStream ok");
is=new ObjectInputStream(i);
System.out.println("Object InputStream ok");
os=new ObjectOutputStream(o);
System.out.println("Object OutputStream ok");
*/
is=new ObjectInputStream(socket.getInputStream());
System.out.println("socket ObjectInputStream ok ");
os=new ObjectOutputStream(socket.getOutputStream());
System.out.println(" socket ObjectOutputStream ok ");
Thread t=new Thread(new ClientRunnable(is));
t.start();
// get user input and send it to server
while(true) {
lineToBeSent = inputFromKeyBoard.readLine();
// stop if input line is "quit"
if ( (lineToBeSent==null) || (lineToBeSent.equals("quit")) ){
os.writeObject(lineToBeSent); //send to server
break;
}
os.writeObject(lineToBeSent); //send to server
/* String message=(String) is.readObject(); //get from server
if ( (message==null) || (message.equals("quit")) ){
break;
}
System.out.println(message); */
}
}
catch (Exception e) {
System.out.println(e);
}
finally{
if (is!=null){
try{
is.close();
}catch (Exception e) {
System.out.println(e);
}
}
if (os!=null){
try{
os.close();
}catch (Exception e) {
System.out.println(e);
}
}
if (socket!=null){
try{
socket.close();
}catch (Exception e) {
System.out.println(e);
}
}
}
}
static class ClientRunnable implements Runnable {
ObjectInputStream is=null;
public ClientRunnable( ObjectInputStream is ){
this.is=is;
}
public void run(){
try{
while(true){
String message=(String) is.readObject(); //get from server
if ( (message==null) || (message.equals("quit")) ){
break;
}
System.out.println(message);
}
is=null;
}
catch (Exception e) {
System.out.println(e);
e.printStackTrace();
}
}
}//inner class
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -