运用socket实现简单的服务器客户端交互
Socket解释:
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。


try {
//创建绑定到特定端口的服务器套接字
ServerSocket serverSocket=new ServerSocket(9999);
System.out.println("***服务器即将启动,等待客户端链接***");
//侦听并接受到此套接字的连接
Socket socket=serverSocket.accept();
//获取输入流
InputStream is=socket.getInputStream();
//将字节输入流转为字符输入流
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
String str=null;
while((str=br.readLine())!=null){
System.out.println("服务器说:客户端发送了:"+str);
br.readLine();
}
//此套接字的输入流置于"流的末尾"
socket.shutdownInput();
br.close();
isr.close();
is.close();
} catch (IOException e) {
e.printStackTrace();
}
Client端:
try {
Socket socket=new Socket("127.0.0.1",9999);
OutputStream os=socket.getOutputStream();
PrintWriter print=new PrintWriter(os);
print.write("你好啊!服务器!");
print.close();
os.close();
} catch (Exception e) {
e.printStackTrace();
}
首先需要启动服务器端,创建ServerSocket等待客户端连接:

然后,启动客户端:

这样,一个简单的Socket通信就实现了!
运用socket实现简单的服务器客户端交互的更多相关文章
- C#中使用Socket实现简单Web服务器
上一篇博客中介绍了怎样使用socket访问web服务器.关键有两个: 熟悉Socket编程: 熟悉HTTP协议. 上一篇主要是通过socket来模拟浏览器向(任何)Web服务器发送(HTTP)请求,重 ...
- Windows Socket 编程_ 简单的服务器/客户端程序
转载自:http://blog.csdn.net/neicole/article/details/7459021 一.程序运行效果图 二.程序源代码 三.程序设计相关基础知识 1.计算机网络 2 ...
- 大聊Python----通过Socket实现简单的ssh客户端
光只是简单的发消息.收消息没意思,干点正事,可以做一个极简版的ssh,就是客户端连接上服务器后,让服务器执行命令,并返回结果给客户端. #ssh_client.py import socket cli ...
- socket本地模拟TCP 服务器+客户端(二)
建立两个py文件,分别打开两个cmd界面,即可进行通信.服务器端运用多进程,连续不断的处理从客户端接收到的数据:客户端通过一个list不断给客户端发送数据. (每个连接都必须创建新线程(或进程)来处理 ...
- socket本地模拟UDP 服务器+客户端(三)
UDP: TCP是建立可靠连接,并且通信双方都可以以流的形式发送数据.相对TCP,UDP则是面向无连接的协议. 使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口号,就可以直接发数据包. ...
- 简单实现服务器/客户端的c代码
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<sys/types.h> ...
- 使用Socket的简单Web服务器
Socket类在System.Net.Sockets命名空间 常用的操作 Bind:绑定一个本地的终结点 Listen:进入监听状态,并设置等待队列 Accept:等待一个新连接,当连接到达时,返回一 ...
- Python Socket实现简单web服务器
#!/usr/bin/python env # coding:utf-8 import socket ip_port = ('127.0.0.1', 80) back_log = 10 buffer_ ...
- Java新AIO/NIO2:AsynchronousServerSocketChannel和AsynchronousSocketChannel简单服务器-客户端
Java新AIO/NIO2:AsynchronousServerSocketChannel和AsynchronousSocketChannel简单服务器-客户端用AsynchronousServerS ...
随机推荐
- 编写高质量代码改善C#程序的157个建议
1.使用StringBuilder或者使用string.Format("{0}{1}{2}{3}", a, b, c, d)拼接字符串. 2.使用默认转型方法,比如使用类型内置的P ...
- 小课堂Week12 Clean Code Part1
小课堂Week12 Clean Code Part1 今天的主题是函数,让我们看一个函数,找一找其中的"不整洁". 我们也根据这段代码,讨论下对于整洁代码的两个重要原则. publ ...
- 共享内存shared pool (4):Library cache 转储文件
上一篇blog只是从概念上理解Library cache,本篇则是将Library cache从内存中dump出来,看看其结构. 基本命令 ALTER SESSION SET EVENTS 'imme ...
- pyenv
export PYTHON_BUILD_MIRROR_URL="http://pyenv.qiniudn.com/pythons/"
- [转]PROC简单使用用例--VC连接ORACLE
[转]PROC简单使用用例--VC连接ORACLE 操作系统:windows 7 数据库版本:oracle 10g VS版本:VS2010 前言:连接ORACLE的方式有很多,此处仅以PROC为例,说 ...
- ios中如何计算(页数,行数,等等的算法)
页数 = (总个数 + 每页最大显示个数 - 1) / 每页显示最大的个数
- iOS学习之UI可视化编程-StoryBoard
一.StoryBoard与xib 对比: 相同点:都属于IB编程的方式,可以快速构建GUI. 不同点:xib侧重于单文件(单独的控制器或者视图)编辑,storyboard侧重于多页面关联.storyb ...
- b75,gtx560,I5 安装10.10.2
1.安装变色龙,wowpc.iso,这个是可以让电脑从windows引导 mac 安装的. 2.把黑苹果CDR压到一个硬盘分区里去. 3.安装10.10.2,把安装盘里的extra拷贝到 系统盘里 , ...
- PB中无法插入ole控件,解决办法
cmd /c for %i in (%windir%\system32\*.ocx) do regsvr32.exe /s %icmd /c for %i in (%windir%\system32\ ...
- Delphi 调试日子 - 莫名其妙的堆溢出
这个是个很有意思的事情,这一个成熟的模板上更改,同样的属性,同样的方法,新的组件在载入过程中就是报错. “Stack overflow” 因为有初始化过程,担心是不是那个地方有问题,由于是在属性赋值过 ...