Myeclipse可用。
Socket编程分为4个步骤进行
1.建立连接。端口号,IP地址
2.打开Socket关联的输入输出流
3.数据流中读写数据
4.关闭所有的数据流和Socket
服务器端代码
public class Test {
public Test() {
//服务端创建serversocket,参数是端口号。
try {
ServerSocket ss=new ServerSocket(8989);
System.out.println("服务器已启动,请不要关闭。。。。。。");
while(true) {
//监听客户端请求,并获取socket对象
Socket socket=ss.accept();
/**********接收客户端发来的消息*****************************/
//从socket对象中获取输入流
InputStream is=socket.getInputStream();
//转化为字符流并加入缓冲流
BufferedReader br=new BufferedReader(new InputStreamReader(is, "utf-8"));
String str=br.readLine();
System.out.println("客户端传递的消息为"+str);
//告诉程序我把事情做完了,并不是断开连接
socket.shutdownInput();
/*****************响应客户端消息************************/
System.out.println("请输入要发送给客户端的消息:");
Scanner sc=new Scanner(System.in);
String msg=sc.next();
//获取输出流准备回应消息
OutputStream os=socket.getOutputStream();
os.write(msg.getBytes("utf-8"));
os.flush();
socket.shutdownOutput();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
new Test();
}
}
客户端
public class Model {
public Model() {
while(true) {
//客户端new socket对象
try {
Socket socket=new Socket("localhost", 8989);
/********************向服务器发送消息***********************/
System.out.println("请输入向服务器发送的消息");
Scanner sc=new Scanner(System.in);
String msg=sc.next();
//获取输出流
OutputStream os=socket.getOutputStream();
//写入,转化编码
os.write(msg.getBytes("utf-8"));
os.flush();
socket.shutdownOutput();
/********************接收服务器消息***********************/
InputStream is=socket.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(is,"utf-8"));
String str=br.readLine();
System.out.println("服务器发回的消息为"+str);
socket.shutdownInput();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
关于socket的包都是.net
实现多客户端请求:采用多线程的方式,一个专门负责监听应用主服务程序,一个负责响应线程程序。
具体怎样实现我也不知道