?? serverclient.java
字號:
/*源程序清單8-20*/
import java.io.*;
import java.net.*;
public class ServerClient
{
public ServerClient(int port)
{
Server server=new Server(port);
server.start();
Client client=new Client(port);
client.start();
}
public static void main(String[] args)
{
new ServerClient(7777);
}
}
//服務器線程
class Server extends Thread
{
//使用端口號
int port;
ServerSocket server;
Socket socket;
//服務器輸出流
DataOutputStream outStream=null;
//服務器輸入流
DataInputStream inStream=null;
public Server(int port)
{
try
{
this.port=port;
server=new ServerSocket(port);
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
public void run()
{
try
{
//監聽用戶連接
socket=server.accept();
outStream=new DataOutputStream(socket.getOutputStream());
inStream=new DataInputStream(socket.getInputStream());
//服務器準備好,可以進行通訊
System.out.println("server is ok,please continue!");
while(true)
{
//讀取從客戶端發送的信息
String str=inStream.readUTF();
System.out.println("The server receive String:"+str);
//將信息重新向客戶端發送
outStream.writeUTF(str);
}
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
}
class Client extends Thread
{
//指定通訊端口
int port;
Socket socket;
DataInputStream inStream=null;
DataOutputStream outStream=null;
public Client(int port)
{
try
{
this.port=port;
//建立同本地機子的socket連接
socket=new Socket(InetAddress.getLocalHost(),port);
inStream=new DataInputStream(socket.getInputStream());
outStream=new DataOutputStream(socket.getOutputStream());
//客戶端準備好,可以進行通訊
System.out.println("client is ok,please continue!");
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
public void run()
{
try
{
while(true)
{
byte[] b=new byte[1024];
String str="";
//從鍵盤讀取字符串
int m=System.in.read(b);
str=new String(b,0,0,m-1);
//向服務器發送信息
outStream.writeUTF(str);
//從服務器讀取信息
str=inStream.readUTF();
System.out.println("The client receive String:"+str);
}
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -