Socket (ip,port)任何台机两个要连在一起需要 ip和port ( 端口 监听)。只要port相同。
一台机器有几个程序,每个程序需要一个端口,传递接受包。网站的端口80。
ServerSocket ( port )服务器打开。
如果Socket s1发出消息,accept ( ) 接受以后创建Socket s2与之对应。
Socket s2 = accept ;
Socket的两个类,InputStream(输入),OutputStream(输出).
package Server;
//控制台找ip:ipconfig
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class Server {
public static int port=3000;
public static final String ip="192.168.31.146";
public static void main(String[] args) {
// System.out.println("开始"+port+"连上启动服务器。。。");
try{
ServerSocket ss = new ServerSocket(port);//创建Socket 传入值。
System.out.println("成功启动服务器,端口:"+port);
Socket socket = ss.accept();//打开服务器。接受数据,返回socket
System.out.println("连上客户端。。。");
BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));//写数据
BufferedWriter output = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));//出数据
String clientMsg;//发送的数据
String serverMsg;//接受的数据
Scanner sc = new Scanner(System.in);
clientMsg = input.readLine();
while(clientMsg !="bye"){
System.out.println(clientMsg);
serverMsg = sc.nextLine();//等待发消息
output.write(serverMsg+"\r\n");
output.flush();//发送
clientMsg = input.readLine();
}
sc.close();
ss.close();//socket端口关闭
}catch(IOException e){
e.printStackTrace();
}
}
}
package Server;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.util.Scanner;
public class Client {
//s.getInputStream(字节)->InputStreamReader(字符)->Buffered(句子,可以定时发送。)客户端也可使用,取决于需求。
public static int port=3006;
public static final String ip="192.168.31.146";//连接其他的客户端。
public static void main(String[] args) {
try{
Socket s = new Socket(ip,port);//创建Socket 传入值。
System.out.println("连上服務器端。。。");
BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream()));//放数据
BufferedWriter output = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));//拿数据
String clientMsg;//发送数据
String serverMsg;//接受数据
Scanner sc = new Scanner(System.in);
clientMsg = sc.nextLine();
while(clientMsg !="bye"){
output.write(clientMsg+"\r\n"); //"\r\n"换行
output.flush();//发送
serverMsg = input.readLine();//等待发消息
System.out.println(serverMsg);//打印消息
}
sc.close();
s.close();
}catch(IOException e){
e.printStackTrace();//
}
}
}
网友评论