Java专题 TCP编程的两种简单案例

第一种
注意两份代码要放到不同的Java文件main中执行,并且要运行server端,再开client
server

	//建立连接
	ServerSocket ss = new ServerSocket(8021);			//这一句就已经建立了服务端
	System.out.println("Connect successful.");
	
	Socket server = ss.accept();						//转到socket类型为了下面的输入输出流
	
	InputStream isInputStream = server.getInputStream();
	ByteArrayOutputStream baos = new ByteArrayOutputStream();	//内存输出流
	
	int i;													//将读入的暂时存到内存中
	while ((i=isInputStream.read())!=-1) {					//将读到的写入
		baos.write(i);
	}
	
	System.out.println("Server Duan accept:"+baos.toString());	//将内存中的显示处理出来
	isInputStream.close();
	baos.close();

client

	//建立连接 客户段
	Socket client = new Socket(InetAddress.getByName("192.168.11.170"),8065);  //标明要对接的主机号和端口
	//前面的为ip  后面为端口,都那口可以自定义
															//这一句已经连接到对应服务端口
	Scanner reader = new Scanner(System.in);
	System.out.println("already connect to server,input your content:");
	String mString = reader.nextLine();							//输入
	
	OutputStream os = client.getOutputStream();					//输出流建立
	os.write(mString.getBytes());								//写入流
	
	os.close();

第二种 可以实现在控制台持续对话,可以试着聊聊天?
server 2

				//println 自动刷新
	ServerSocket ss = new ServerSocket(8086);
	System.out.println("Server is Listening.");
	
	while (true) {
		Socket server = ss.accept();
		
		new Thread(new Runnable() {
			@Override
			public void run() {
				try {								//读入转为buffer
					InputStream is = server.getInputStream();
					BufferedReader brReader = new BufferedReader(new InputStreamReader(is));
					
					OutputStream os = server.getOutputStream();		//转到缓冲
					PrintWriter pw = new PrintWriter(os,true);		//自动刷新输出流的内容
					
					System.out.println("receive :"+brReader.readLine());
					
					Scanner reader = new Scanner(System.in);
					System.out.println("input your words:");
					String s1 = reader.nextLine();
					pw.println(s1);
					
					server.close();
					
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
				
			}
		}).start();
		
	}

client 2

	//println 自动刷新
	while (true) {
	Socket client = new Socket(InetAddress.getByName(""),8086);	//要发送的对象地址和程序端口
	System.out.println("Linked successful");
	
	OutputStream outputStream = client.getOutputStream();		//输出流
	PrintWriter pwWriter = new PrintWriter(outputStream,true);
	
	InputStream inputStream = client.getInputStream();			//输入流
	BufferedReader bfReader = new BufferedReader(new InputStreamReader(inputStream));
	
	Scanner reader = new Scanner(System.in);
	System.out.println("send:");
	String s2 = reader.nextLine();
	pwWriter.println(s2);
	
	System.out.println("receive:"+bfReader.readLine());
	
	client.close();
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值