网络编程——TCP连接
TCP在双方传输数据前,发送方先请求建立连接,接收方同意建立连接后才能传输数据。(打电话:先拨号,等对方同意接听后,才能交流)。。。高可靠性
UDP不需要建立连接(发短信)。不可靠,可能出现数据丢失等,但效率高,实时性高。
————————————————————————————————————————————————————————————————————————————
服务器端:
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket; public class ServerSocketTest { public static void main(String[] args) throws IOException {
// 新建一个服务器端的套接字 Server端监听10000端口
ServerSocket serverSocket = new ServerSocket(10000);
// 建立连接,此时进入阻塞状态
Socket socket = serverSocket.accept();
System.out.println("Connected: " + socket.getRemoteSocketAddress());
// socket从客户端读取数据
InputStream inputStream = socket.getInputStream();
byte[] b = new byte[1024];
int length = inputStream.read(b);
System.out.println(length + " Bytes Received");
} }
客户端代码:
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket; public class ClientSocketTest { public static void main(String[] args) throws IOException {
//新建一个客户端的套接字
Socket socket = new Socket("127.0.0.1", 10000);
// 用socket往服务器端发送数据
OutputStream outputStream = socket.getOutputStream();
byte[] b = new byte[2];
outputStream.write(b);
} }
运行结果:
Connected: /127.0.0.1:60361
2 Bytes Received
网络编程——TCP连接的更多相关文章
- UNIX网络编程——TCP连接的建立和断开、滑动窗口
一.TCP段格式: TCP的段格式如下图所示: 源端口号与目的端口号:源端口号和目的端口号,加上IP首部的源IP地址和目的IP地址唯一确定一个TCP连接. 序号:序号表示在这个报文段中的第一个数据字节 ...
- python网络编程--TCP连接的三次握手(三报文握手)与四次挥手
一.TCP连接 运输连接有三个阶段: 连接建立.数据传送和连接释放. 在TCP连接建立过程中要解决以下三个问题: 1,要使每一方能够确知对方的存在. 2.要允许双方协商一些参数(如最大窗口之,是否使用 ...
- 网络编程-TCP连接的建立与终止
TCP是一个面向连接的协议.无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接. 1.建立连接 请求端(通常称为客户)发送一个 SYN 段指明客户打算连接的服务器的端口,以及初始序号( I ...
- 网络编程-TCP连接-length
在使用readLine方式时,常常会遇到因为没有结束标记,而导致阻塞现象. 如果不想使用结束标记,这里可以使用一个固定长度的byte[],来获取流. server package com.net.tc ...
- 网络编程-TCP连接-readLine
Server: package com.net.tcp; import java.io.BufferedReader; import java.io.IOException; import java. ...
- 网络编程TCP协议-聊天室
网络编程TCP协议-聊天室(客户端与服务端的交互); <span style="font-size:18px;">1.客户端发数据到服务端.</span> ...
- C#网络编程TCP通信实例程序简单设计
C#网络编程TCP通信实例程序简单设计 采用自带 TcpClient和TcpListener设计一个Tcp通信的例子 只实现了TCP通信 通信程序截图: 压力测试服务端截图: 俩个客户端链接服务端测试 ...
- Socket网络编程(TCP/IP/端口/类)和实例
Socket网络编程(TCP/IP/端口/类)和实例 原文:C# Socket网络编程精华篇 转自:微冷的雨 我们在讲解Socket编程前,先看几个和Socket编程紧密相关的概念: TCP/IP层次 ...
- 聊聊iOS中网络编程长连接的那些事
1.长连接在iOS开发中的应用 常见的短连接应用场景:一般的App的网络请求都是基于Http1.0进行的,使用的是NSURLConnection.NSURLSession或者是AFNetworking ...
随机推荐
- openStack use
<1,project security> security groyps Security groups--> are sets of IP filter rules() that ...
- linux经常使用(一)linux 安装配置 jdk之 找不到安装文件文件夹及source /etc/profile 报unexpected end of file 错误 解决
linux 安装配置 jdk 应该算是一个非常主要的东西.可是我到如今才自己第一次 正式安装.果然出现了问题.. 问题就是 安装之后 找不到 安装路径 ,进而没法配置环境变量. 现象例如以下: 提示 ...
- NYOJ128 前缀式计算(栈的运用)
题目信息: http://acm.nyist.net/JudgeOnline/problem.php? pid=128 + 2 * + 3 4 5的值就是 37,详见输入输出. 输入 有多组測试数据, ...
- asp.net MVC Razor 语法(2)
变量是用于存储数据的命名实体. 变量 变量用于存储数据. 变量名必须以字母字符开头,不能包含空格和保留字符. 变量可以是某个具体的类型,指示其所存储的数据类型.字符串变量存储字符串值 ("W ...
- Python下载Bing主页图片
直接上代码: # -*- coding: cp936 -*- import urllib import os print 'Download data......' url = 'http://cn. ...
- JavaScript之共享onload
我们知道,当我们将JS代码脚本放到<head></head>标签之间时,这是的js代码加载要先于DOM加载,而我们往往会在JS代码脚本中写一些获取DOM元素的代码,而此时的DO ...
- BZOJ 1492: [NOI2007]货币兑换Cash( dp + 平衡树 )
dp(i) = max(dp(i-1), x[j]*a[i]+y[j]*b[i]), 0<j<i. x, y表示某天拥有的最多钱去买金券, 金券a和金券b的数量. 然后就很明显了...平衡 ...
- BZOJ 2762: [JLOI2011]不等式组( 平衡树 )
对不等式变形..然后就是维护一些数, 随便找个数据结构都能写吧....用double感觉会有精度误差, 分类讨论把<改成<=了很久后弃疗了, 自己写了个分数体....然后速度就被完爆了.. ...
- IOS 特定于设备的开发:基于加速计的滚动视图
倾斜滚轮使用设备的内置加速计来控制在UIScrollView的内容周围移动.当用户调增设备时,材料会相应的下落,他不会把视图定位在屏幕上,而是把内容视图滚动到一个新的偏移位置. 创建这个界面的挑战在于 ...
- php错误 mysql_query():supplied argument is not a valid MySQL result resource
出现这种错误,原因是出现该错误的函数的参数出现了问题 参数出现问题有多种情况: 1.sql查询语句有问题,可能多了一个逗号,少了一个逗号,多了括号之类的: 2.与数据库连接的参数有问题,用户名.密码. ...