Java-----Socket通信

基于TCP: 面向连接  安全可靠  效率低  , 类似于打电话

一.面向连接: 请求响应    Request   ---Response

二.Socket编程

    1.服务器: ServerSocket

    2.客户端:Socket

Server.java

package com.kennosaur.net.tcp.socket;

import java.io.BufferedWriter;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * 必须先启动服务器,后连接客户端
 * 1.创建服务器,指定端口 ServerSocket(int port) 
 * 2.接收客户端的链接
 * 3.发送数据+接收数据
 * @author Administrator
 *
 */
public class Server {

	public static void main(String[] args) throws IOException {
		//1.创建服务器,指定端口 ServerSocket(int port) 
		ServerSocket server = new ServerSocket(8888);
		//2.接收客户端的链接   阻塞式
		Socket socket =server.accept();
		System.out.println("一个客户端建立连接");
		//3.发送数据
		String msg = "欢迎使用";
		//输出流
		/*
		BufferedWriter bw=new BufferedWriter(
				new OutputStreamWriter(socket.getOutputStream()));
		bw.write(msg);
		bw.newLine();  //Connection reset
		bw.flush();
		*/
		
		DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
		dos.writeUTF(msg);
		dos.flush();
	}

}

Client.java

package com.kennosaur.net.tcp.socket;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;

/**
 * 1.创建客户端 必须指定服务器+端口 此时就在连接
 *   Socket(String host, int port) 
 * 2.接收数据+发送数据
 * 
 * @author Administrator
 *
 */
public class Client {

	public static void main(String[] args) throws UnknownHostException, IOException {
		//1.创建客户端 必须指定服务器+端口 此时就在连接
		Socket client = new Socket("localhost", 8888);
		//2.接收数据
		/*
		BufferedReader br = new BufferedReader(
				new InputStreamReader(client.getInputStream()));
		String echo = br.readLine();  //Connection reset 阻塞式方法
		System.out.println(echo);
		*/
		
		DataInputStream dis = new DataInputStream(client.getInputStream());
		String echo = dis.readUTF();
		System.out.println(echo);
		
	}

}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值