文档章节

<Java 网络基础知识>学习日志(三)——基于TCP的socket实现

WhuBit
 WhuBit
发布于 2016/11/19 23:18
字数 294
阅读 7
收藏 0
package 网络基础知识;

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.io.PrintWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;

public class TCPServerSocket {
	/*
	 * 2016/11/19
	 * 基于TCP的ServerSocket
	 */

	public static void main(String[] args) {
	
		try {
			//创建一个服务器端Socket,并指定监听端口
			ServerSocket ser=new ServerSocket(8888);
			int count=0;
			//开始监听
			System.out.println("====请系好安全带,服务器即将启动====");
			while(true){
				Socket socket=ser.accept();
				SocketThread st=new SocketThread(socket);
				//启动线程
				st.start();
				count++;
				InetAddress address=socket.getInetAddress();
				System.out.println("客户端的IP:"+address.getHostAddress());
				System.out.println("已连接用户:"+count);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

}

package 网络基础知识;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;

public class TCPClientSocket {

	public static void main(String[] args) {	
			try {
				//创建客户端Socket,制定服务器地址和端口
				Socket socket=new Socket("localhost",8888);
				//获取输出流,向服务器端发送信息
				OutputStream os=socket.getOutputStream();
				OutputStreamWriter osr=new OutputStreamWriter(os);
				PrintWriter pw=new PrintWriter(osr);
				
				pw.write("用户名:Sam;密码:8888888");
				pw.flush();//发出信息
				
				
				
				//关闭输出、输出流
				socket.shutdownOutput();
				
				InputStream is=socket.getInputStream();
				InputStreamReader isr=new InputStreamReader(is);
				BufferedReader br=new BufferedReader(isr);
				
				String info=null;
				while((info=br.readLine())!=null)
					System.out.println("我是客户端,服务器说:"+info);
				socket.shutdownInput();
				//关闭其他资源
				os.close();
				osr.close();
				pw.close();
				
				is.close();
				isr.close();
				br.close();
				socket.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			
			
		
		

	}

}

© 著作权归作者所有

共有 人打赏支持
WhuBit
粉丝 1
博文 12
码字总数 4328
作品 0
武汉
私信 提问
JAVA基础再回首(二十八)——网络编程概述、IP地址、端口号、TCP和UDP协议、Socket、UDP传输、多线程UDP聊天

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m366917/article/details/52723439 JAVA基础再回首(二十八)——网络编程概述、IP地址、端口号、TCP和UDP协议...

Aduroidpc
2016/10/02
0
0
JAVA基础再回首(三十)——JAVA基础再回首完美结束,感概万千!

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m366917/article/details/52724939 JAVA基础再回首(三十)——JAVA基础再回首完美结束,感概万千! 经过了几...

Aduroidpc
2016/10/02
0
0
架构师必备技能之Netty 高并发 UTS 项目实战

一、Netty Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。 也就是说,Netty 是一个基...

A尚学堂Nancy老师
08/27
0
0
JAVA基础再回首(二十九)——TCP传输、上传文件、上传图片、多并发上传

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m366917/article/details/52724684 JAVA基础再回首(二十九)——TCP传输、上传文件、上传图片、多并发上传 ...

Aduroidpc
2016/10/02
0
0
Java Socket编程----通信是这样炼成的

Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket。像大家熟悉的QQ、MSN都使用了Socket相关的技术...

浮躁的码农
2017/11/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

分布式锁的实现

redis实现分布式锁 方法1:普通实现方案 实现方式: 使用指令: set key 随机值 ex 5 nx.意思是当key不存在的时候设置key. 如果key存在返回OK,否则返回nil. 实现过程: 1.执行命令set key true ...

grace_233
21分钟前
1
0
解决CKEditor 4 富文本编辑器在图片组件无法显示[上传]选项卡的相关问题

关于解决CKEditor 4 富文本编辑器在图片组件无法显示[上传]选项卡的相关问题。 本文可能会对以下现象得以解决: 图片上传组件,没有 [上传] 选项卡。 资源无法加载 [imgupload] ( Uncaught E...

Eller
25分钟前
0
0
限制php解析、user_agent、php相关配置

11月20日任务 11.28 限定某个目录禁止解析php 11.29 限制user_agent 11.30/11.31 php相关配置 11.28、限定某个目录禁止解析php 核心配置文件内容 <Directory /data/wwwroot/www.123.com/upl...

zgxlinux
30分钟前
1
0
博客园首页新随笔联系订阅管理 随笔

注解Annotation实现原理与自定义注解例子 什么是注解? 对于很多初次接触的开发者来说应该都有这个疑问?Annontation是Java5开始引入的新特征,中文名称叫注解。它提供了一种安全的类似注释的...

onedotdot
47分钟前
4
1
Spring boot + redis 用RedisTemlate实现简单的String key value 操作

springboot集成redis, 简单的key, value缓存操作. 1. application-local.properties # redis on local#spring.redis.port=6379#spring.redis.host=localhost#spring.redis.password=......

园领T
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部