java使用客户端套接字和服务器端套接字实现通信

客户端

package com.sczy.entiy;
import java.io.*;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.util.Scanner;
/**
 * 创建一个客户端套接字
 */
public class ClientScoket {
    public static void main(String[] args) {
        Scanner sacn = new Scanner(System.in);
        Socket clinet = new Socket();
        InetSocketAddress ints = new InetSocketAddress("localhost",6363);
        //创建一个远程 服务器连接
        InetSocketAddress removeInts = new InetSocketAddress("localhost",7666);
        //创建相关的输入输出流
        InputStream in = null;
        OutputStream out = null;
        DataInputStream din = null;
        DataOutputStream dout = null;
        try {
            clinet.bind(ints);
            boolean bound = clinet.isBound();//查看是否绑定了端口
            boolean count = clinet.isConnected();//查看是否处于连接状态
            clinet.connect(removeInts);//尝试连接远程服务器
            //得到套接字的输入输出流
            in = clinet.getInputStream();
            out = clinet.getOutputStream();
            din = new DataInputStream(in);
            dout = new DataOutputStream(out);
            while(true){
                System.out.println("请输入你想发送的信息");
                String mess = sacn.next();
                dout.writeUTF(mess);//向服务器发送信息
                String ress = din.readUTF();//接收服务器的回馈信息
                System.out.println("服务器向您相应的消息是:");
                System.out.println(ress);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

服务器端

package com.sczy.entity;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class severSockets {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		InputStream in = null;
		OutputStream out = null;
		DataInputStream din = null;
		DataOutputStream dout = null;
	try {
		Socket client = null;
		ServerSocket server = new ServerSocket(7666);
		while(true) {
			System.out.println("等待连接");
			client = server.accept();;
			System.out.println("连接成功");
			//所有的输入输出流都要基于客服端套接字创建
			in = client.getInputStream();
			din = new DataInputStream(in);
			out = client.getOutputStream();
			dout = new DataOutputStream(out);
			while(true) {
				String mess = din.readUTF();//获得客服端的信息
				System.out.println("客服端向你发送的信息是:");
				System.out.println(mess);
				System.out.println("请输入你的回馈给客服端信息");
				String ress = scan.next();
				dout.writeUTF(ress);//返回客服端信息
				if(client.isClosed()) {
					break;//如果客服端断开了连接,就不在等待他的消息
				}
			}
		}
	} catch (Exception e) {
		e.printStackTrace();
	}

}
}

这个是服务器端界面
这个是客户端界面

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值