-
创建socket
-
创建socket
Socket();
Socket(InetAddress address,int port);
Socket(String host,int port);
Socket(InetAddress host,int port,InetAddress localAddr,int localPort);
Socket(String host,int port,InetAddress localAddr,int localPort);
-
客户端Socket的建立
try{
Socket socket=new Socket("127.0.0.1",2000);
}catch(IOException e){
System.out.println("Error:"+e);
}
-
服务器端Socket的建立
ServerSocket server=null;
try{
server=new ServerSocket(2000);
}catch(IOException e){
System.out.println("can not listen to:"+e);
}
Socket socket=null;
try{
socket=server.accept();
}catch(IOException e){
System.out.println("Error:"+e);
}
-
打开输入/输出流
printStream os=new PrintStream(new
BufferedOutputStream(socket.getOutputStream()));
DataInputStream is=new
DataInputStream (socket.getInputStream());
PrintWriter out=new
PrintWriter(socket.getOutputStream(),true);
BufferedReader in=new
BufferedReader (new
InputStreamReader(socket.getInputStream()));
-
关闭socket
os.close();
is.close();
socket.close();
//关闭的顺序是先关闭流再关闭socket
demo:命令行聊天程序
客户端程序:
public class TalkClient{
public static void main(String args[]){
try{
Socket socket=new Socket("127.0.0.1",4700);
//键盘输入流
BufferedReader sin=new BufferedReader(new
InputStreamReader(System.in));
//输出流
PrintWriter os=new
PrintWriter(socket.getOutputStream());
//接收来自网络的信息
BufferedReader is=new BufferedReader(new
InputStreamReader(socket.getInputStream()));
String readline;
readline=sin.readLine();
while(!readLine.equals("bye"))
{os.println(readline);
os.flush();
System.out.println("Client:"+readline);
System.out.println("Server:"+is.readline());
readline=sin.readLine();
}
os.close();
is.close();
socket.close();
}catch(Exception e){
System.out.println("Error"+e);
}
}
}
服务器端程序:
public class TalkServer{
public static void main(String args[]){
try{
ServerSocket server=null;
try{
server=new ServerSocket(4700);
}catch(Exception e){
System.out.println("can not listen to:"+e);}
Socket socket=null;
try{
socket=server.accept();
}catch(Exception e){
System.out.println("Error:"+e);
}
String line;
BufferedReader is=new BufferedReader (new
InputStreamReader(socket.getInputStream()));
PrintWriter os=new
PrintWriter (socket.getOutputStream());
BufferedReader sin=new BufferedReader (new
InputStreamReader(System.in));
System.out.println("Client:"+is.readLine());
line=sin.readLine();
while(!line.equals("bye"))
{
os.println(line);
os.flush();
System.out.println("Server:"+line);
System.out.println("Client:"+is.readLine());
line=sin.readLine();
}
os.close();
is.close();
socket.close();
server.close();
}catch(Exception e){
System.out.println("Error:"+e);
}
}
}