java通信技术---socket

来源:互联网 发布:网络平台创业计划书 编辑:程序博客网 时间:2024/06/05 14:27

—————————-服务端————————-
package tongxin;

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;

/**
* 服务端
* ServerSocket 此类实现服务器套接字。服务器套接字等待请求通过网络传入。
* 它基于该请求执行某些操作,然后可能向请求者返回结果。
* Socket accept() 侦听并接受到此套接字的连接。
*/
public class MyServer {

public static void main(String[] args) throws IOException {    //1.在服务器的端口8000创建一个服务端    ServerSocket myServer = new ServerSocket(7000);    //2.等待客户端8000端口链接    Socket socket = myServer.accept();    //3.看一下客户端跟我说啥了,输入流,使用输入反冲流,    InputStreamReader in = new InputStreamReader(socket.getInputStream());    BufferedReader br=new BufferedReader(in);    String info=null;    while((info=br.readLine())!=null) {        System.out.println("服务端收到的:"+info);    }    socket.shutdownInput();    //4.我也想客户端发个请求    BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));    bw.write("客户端你好,我是服务端,欢迎你来访问我");    bw.flush();    bw.close();    in.close();    br.close();    myServer.close();}

}

—————–客户端—————————-
package tongxin;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

/**
* 客户端
* Socket—此类实现客户端套接字(也可以就叫“套接字”)。套接字是两台机器间通信的端点
* InetAddress—此类表示互联网协议 (IP) 地址。
* String getHostName()—主机ip
获取此 IP 地址的主机名。
InputStream getInputStream()
返回此套接字的输入流。
*
*/
public class Client {
public static void main(String[] args) throws IOException, IOException {

    // 1.向本机的8000端口发出客户请求    Socket socket = new Socket(InetAddress.getLocalHost(), 7000);    System.out.println("已经向" + socket.getPort() + "端口链接成功");    // 2.客户端说:服务端你好,我是客服端----获取输出流,写进去,使用缓冲流写    BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));    bw.write("服务端你好,我是客服端");    bw.flush();//一定放在关闭输出流之前进行缓冲    socket.shutdownOutput();    //3.看一下服服端跟我发了啥,输入流,使用输入反冲流,    InputStreamReader in = new InputStreamReader(socket.getInputStream());    BufferedReader br=new BufferedReader(in);    System.out.println("客服端收到的:"+br.readLine());    bw.close();    in.close();    br.close();    socket.close();}

}

原创粉丝点击