java socket 网络编程

初始版本:

服务端:

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;


public class Text {
	public static void main(String[] args) {
	
		byte[] date = new byte[128];
		
		try {
			ServerSocket socket = new ServerSocket(8989);
			System.out.println("创建成功,等待连接");
			Socket con = socket.accept();
			System.out.println("连接成功");
			//读取数据
			InputStream in = con.getInputStream();
			int len = in.read(date);
			//输出读取的数据
			String str = new String(date,0,len);
			System.out.println(str);
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

客户端:

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;


public class Client {
	public static void main(String[] args) {
		
		try {
			//发起连接申请
			Socket client = new Socket("10.15.134.213",8989);
			//发送数据
			OutputStream out = client.getOutputStream();
			String date ="form to client";
			out.write(date.getBytes());
			System.out.println("发送成功");
			
		}catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
	}
}

 进阶版本:

服务端:

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;


public class Text {
	public static void main(String[] args) {
	
		final byte[] date_R = new byte[128];
		
		try {
			ServerSocket socket = new ServerSocket(8989);
			System.out.println("创建成功,等待连接");
			
			while(true){
				final Socket con = socket.accept();
				System.out.println("连接成功");
				//创建线程读取数据
				new Thread(new Runnable() {
					public void run() {
							try {
								//读取数据
								InputStream in = con.getInputStream();
								int len = in.read(date_R);
								//输出读取的数据
								String str = new String(date_R,0,len);
								System.out.println(str);
							} catch (IOException e) {
								// TODO Auto-generated catch block
								e.printStackTrace();
							}
					}
				}).start();
				//创建线程发送数据
				new Thread(new Runnable() {	
					public void run() {
							try {
								OutputStream out = con.getOutputStream();
								System.out.println("请输入数据:");
								Scanner sc = new Scanner(System.in);
								String date_W = sc.next();
								//发送数据
								out.write(date_W.getBytes());
								
							} catch (IOException e) {
								// TODO Auto-generated catch block
								e.printStackTrace();
							}
					}
				}).start();
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

客户端:

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;


public class Client {
	public static void main(String[] args) {
		
		try {
			//发起连接申请
			final Socket client = new Socket("10.15.134.213",8989);
			//创建线程发送数据
			new Thread(new Runnable() {
				public void run() {
						try {
							OutputStream out = client.getOutputStream();
							System.out.println("请输入数据");
							Scanner sc = new Scanner(System.in);
							String date_W =sc.next();
							//发送数据
							out.write(date_W.getBytes());
						} catch (IOException e) {
							// TODO Auto-generated catch block
							e.printStackTrace();
						}
				}
			}).start();
			//创建线程读取数据
			new Thread(new Runnable() {
				public void run() {
						try {
							//读取数据
							InputStream in = client.getInputStream();
							byte[] date_R = new byte[128];
							int len = in.read(date_R);
							//输出读取到的内容
							String str = new String(date_R,0,len);
							System.out.println(str);
						} catch (IOException e) {
							// TODO Auto-generated catch block
							e.printStackTrace();
						}
				}
			}).start();
			
		}catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值