Socket网络编程(三)
TCP协议网络通讯案例(http协议)
1、创建TcpServer(tcp服务端)
package com.cppdy.tcp; import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket; //tcp服务端
public class TcpServer { public static void main(String[] args) throws Exception { System.out.println("tcp服务端启动啦……");
ServerSocket serverSocket = new ServerSocket(8080);
try {
// 会阻塞在这里,等待连接
Socket accept = serverSocket.accept(); InputStream inputStream = accept.getInputStream(); byte[] bytes = new byte[1024]; int length = inputStream.read(bytes); String result = new String(bytes, 0, length); System.out.println("服务端接收到客户端发送的消息:" + result); OutputStream outputStream = accept.getOutputStream(); PrintWriter printWriter = new PrintWriter(outputStream); printWriter.println("服务器收到消息了,这是服务器自动反馈……"); printWriter.flush(); accept.shutdownOutput();
} catch (IOException e) {
e.printStackTrace();
} finally {
serverSocket.close();
}
} }
2、创建TcpClient(tcp客户端)
package com.cppdy.tcp; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket; //tcp客户端
public class TcpClient { public static void main(String[] args) throws Exception { Socket socket = new Socket("127.0.0.1", 8080); try {
OutputStream outputStream = socket.getOutputStream(); String msg = "吹泡泡的魚"; outputStream.write(msg.getBytes()); System.out.println("客户端发送消息完毕……"); InputStream inputStream = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream)); String result = br.readLine(); System.out.println("客户端==》服务器返回的结果:" + result);
} catch (IOException e) {
e.printStackTrace();
} finally {
socket.close();
}
} }
Socket网络编程(三)的更多相关文章
- Linux Socket 网络编程
Linux下的网络编程指的是socket套接字编程,入门比较简单.在学校里学过一些皮毛,平时就是自学玩,没有见识过真正的socket编程大程序,比较遗憾.总感觉每次看的时候都有收获,但是每次看完了之后 ...
- Python Socket 网络编程
Socket 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的,例如我们每天浏览网页.QQ ...
- Python全栈【Socket网络编程】
Python全栈[socket网络编程] 本章内容: Socket 基于TCP的套接字 基于UDP的套接字 TCP粘包 SocketServer 模块(ThreadingTCPServer源码剖析) ...
- python之Socket网络编程
什么是网络? 网络是由节点和连线构成,表示诸多对象及其相互联系.在数学上,网络是一种图,一般认为专指加权图.网络除了数学定义外,还有具体的物理含义,即网络是从某种相同类型的实际问题中抽象出来的模型.在 ...
- Python之路【第七篇】python基础 之socket网络编程
本篇文章大部分借鉴 http://www.cnblogs.com/nulige/p/6235531.html python socket 网络编程 一.服务端和客户端 BS架构 (腾讯通软件:ser ...
- Socket网络编程-基础篇
Socket网络编程 网络通讯三要素: IP地址[主机名] 网络中设备的标识 本地回环地址:127.0.0.1 主机名:localhost 端口号 用于标识进程的逻辑地址 有效端口:0~65535 其 ...
- Java Socket 网络编程心跳设计概念
Java Socket 网络编程心跳设计概念 1.一般是用来判断对方(设备,进程或其它网元)是否正常动行,一 般采用定时发送简单的通讯包,如果在指定时间段内未收到对方响应,则判断对方已经当掉.用于 ...
- 项目总结——深入浅出socket网络编程
前言: 为什么会有如题的概念呢,我想对于没有主动听说过socket网络编程的人来说读到题目可能就已经蒙头了,为了很好的让大家进入场景,首先说一下一个需要用到这点东西的业务需求. 首先大家应该明确的是s ...
- 循序渐进Socket网络编程(多客户端、信息共享、文件传输)
循序渐进Socket网络编程(多客户端.信息共享.文件传输) 前言:在最近一个即将结束的项目中使用到了Socket编程,用于调用另一系统进行处理并返回数据.故把Socket的基础知识总结梳理一遍. 1 ...
- windows socket 网络编程
样例代码就在我的博客中,包含六个UDP和TCP发送接受的cpp文件,一个基于MFC的局域网聊天小工具project,和此小工具的全部执行时库.资源和执行程序.代码的压缩包位置是http://www.b ...
随机推荐
- python的for循环、while循环
1.for循环使用之乘法表 for i in range(1,10): for j in range(1,i+1): print('%s * %s = %s '%(j,i,i*j),end='') p ...
- vue Transfer 穿梭框
Element Transfer组件默认支持单个list的穿梭 现业务需要支持两个list,效果如下 实现思路: 1.有选中才可穿梭 2.已穿梭源数据减少.目标增加(双向) 边界条件: 存储旧List ...
- 20165237 2017-2018-2 《Java程序设计》第5周学习总结
20165237 2017-2018-2 <Java程序设计>第5周学习总结 教材学习内容总结 1.内部类:在一个类中定义另一个类:外嵌类:包含内部类的类. 2.内部类的类体中不能声明类变 ...
- Pycharm 2018 Activation code 在线激活
1. 下载官方 pycharm https://www.jetbrains.com/pycharm/download/ 2. 点击获取激活码 点击获取激活码 2.1 打开 hosts 文件 2.2 ...
- Struts2学习(三)
一.值栈 1.OGNL表达式 OGNL的概述:对象图导航语言,是一门功能强大的表达式语言. 2.值栈 值栈的概述(ValueStack):是一个接口,实现类OgnlValueStack.是数据的中转站 ...
- excel打开csv格式的文件,数字末尾都变成零,解决方式
excel打开csv格式的文件,数字末尾都变成零,解决方式
- android 控件设置透明度
问题:java文件中引用组件设置透明度:mGuideLayout.getBackground().setAlpha(125); 一直报null 修改办法:对应的布局文件中添加 android:back ...
- 【SVN】SVN初识
SVN 介绍 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Sub ...
- Python全栈(第一部分)day1
计算机基础 cpu:相当于人的大脑,用于计算. 内存:储存数据,4G,8G,16G,32G,成本高,断电即消失. 硬盘:1T,固态硬盘,机械硬盘,储存数据,应该长久保持数据,重要文件,小电影等等. 操 ...
- Go语言中的slice
Go语言中的slice有点类似于Java中的ArrayList,但在使用上更加灵活,先通过下面一个小例子来体验一下如何通过一个已有的切片来产生一个新切片: func main() { slice := ...