java网络编程—TCP(1)
演示tcp的传输的客户端和服务端的互访。
需求:客户端给服务端发送数据,服务端收到后,给客户端反馈信息。
客户端:
1,建立socket服务。指定要连接主机和端口。
2,获取socket流中的输出流。将数据写到该流中。通过网络发送给服务端。
3,获取socket流中的输入流,将服务端反馈的数据获取到,并打印。
4,关闭客户端资源。
服务端:
1,建立服务端的socket服务。ServerSocket();并监听一个端口。
2,获取连接过来的客户端对象。通过ServerSokcet的 accept方法。没有连接就会等,所以这个方法阻塞式的。
3,客户端如果发过来数据,那么服务端要使用对应的客户端对象,并获取到该客户端对象的读取流来读取发过来的数据。并打印在控制台。
4,获取socket流中的输出流。将数据写到该流中。通过网络发送给客户端。
5,关闭服务端。(可选)
代码如下:
客户端代码如下:
package com.package4;
/*
* author:ywq
*/
import java.net.*;
import java.io.*; public class TcpClient { public static void main(String[] args)throws Exception {
//创建客户端的socket服务。指定目的主机和端口
Socket s=new Socket("127.0.0.1",1456); //为了发送数据,应该获取socket流中的输出流。
OutputStream out=s.getOutputStream(); //发送数据
out.write("我是客户端,这是给你发的".getBytes()); //设置一个字节数组,用来存放收到的服务器反馈
byte[] buf=new byte[1024]; //得到socket中的输入流
InputStream in=s.getInputStream(); //将输入流写入到buf数组中
int len=in.read(buf); //创建字符串
String info=new String(buf,0,len); System.out.println(info); //关闭socket
s.close(); } }
服务器端代码如下:
package com.package4; /*
* author:ywq
*/
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket; public class TcpServer { public static void main(String[] args)throws Exception{ //创建服务器的socket,并且监听某个端口
ServerSocket ss=new ServerSocket(1456); while(true)
{
//利用accept方法来获取连接到的客户端对象
Socket s=ss.accept(); //得到并且打印客户端的ip
String ip=s.getInetAddress().getHostAddress();
System.out.println(ip); //得到socket输入流
InputStream in=s.getInputStream(); //设置一个字节数组,用来存放收到的客户端数据
byte[] buf=new byte[1024]; //将输入流写入到buf数组中
int len=in.read(buf); String info=new String(buf,0,len); System.out.println(info); //为了发送数据,应该获取socket流中的输出流。
OutputStream out=s.getOutputStream();
//发送数据
out.write("我是服务器,这是给你的".getBytes()); s.close();
} } }
java网络编程—TCP(1)的更多相关文章
- java 网络编程-tcp/udp
--转自:http://blog.csdn.net/nyzhl/article/details/1705039 直接把代码写在这里,解释看这里吧:http://blog.csdn.net/nyzhl/ ...
- java网络编程(TCP详解)
网络编程详解-TCP 一,TCP协议的特点 面向连接的协议(有发送端就一定要有接收端) 通过三次连接握手建立连接 通过四次握手断开连接 基于IO流传输数据 传输数据大小 ...
- java网络编程TCP传输—流操作—拿到源后的写入动作
在网络编程中的TCP传输里,拿到Socket的源后,应该怎么进行读写操作呢,下面我列举了两种方法,希望大家帮忙补充···· 1.利用byte数组作为一个缓冲区进行读写 客户端上传 //获取socket ...
- Java分享笔记:Java网络编程--TCP程序设计
[1] TCP编程的主要步骤 客户端(client): 1.创建Socket对象,构造方法的形参列表中需要InetAddress类对象和int型值,用来指明对方的IP地址和端口号. 2.通过Socke ...
- Java网络编程(TCP客户端)
TCP传输:两个端点建立连接后会有一个传输数据的通道,这个通道就称为流,而且是建立在网络基础上的流,之为socket流,该流中既可以读取也可以写入. TCP的两个端点:一个客户端:ServerSock ...
- JAVA网络编程TCP通信
Socket简介: Socket称为"套接字",描述IP地址和端口.在Internet上的主机一般运行多个服务软件,同时提供几种服务,每种服务都打开一个Socket,并绑定在一个端 ...
- Java网络编程(TCP服务端)
/* * TCP服务端: * 1.创建服务端socket服务,并监听一个端口 * 2.服务端为了给客户端提供服务,获取客户端的内容,可以通过accept方法获取连接过来的客户端对象 * 3.可以通过获 ...
- JAVA网络编程-----TCP沟通
java采纳TCP变速箱使用Socket和ServerSocket数据传输. 采纳tcp步模式数据传输: 1.设定client和服务器 ,分别对应Socket和ServerSocket 2.建立连接后 ...
- Java网络编程のTCP/IP
TCP/IP参考模型和TCP/IP协议 与OSI参考模型相似,TCP/IP参考模型汲取了网络分层的思想,而且对网络的层次做了简化,并在网络各层都提供了完善的协议,这些协议构成了TCP/IP协议集,简称 ...
随机推荐
- 15. CTF综合靶机渗透(八)
VM Name: BlackMarket VM Description: BlackMarket VM presented at Brisbane SecTalks BNE0x1B (28th Ses ...
- sqlserver2012——SqlCommand创建对象的三种方法
1.使用不带参构造函数 SqlCommand cmd = new SqlCommand(); cmd.Connection = SqlConnnection对象: cmd.CommandText=Sq ...
- Mysql索引优化2
理想的索引 查询频繁 区分度高 长度小 尽量能覆盖常用查询字段 索引与排序 对于覆盖索引,直接在索引上查询时,就是有顺序的,using index 在innodb引擎中,沿着索引字段排序自然是有序的 ...
- vue打包之后生成一个配置文件修改请求接口
问题描述: 在npm run build 生成dist后,url配置也被固定了,传到运行的前端服务器上后,假设某次,api服务器的ip修改了,改动只是更新下这个url,但是却需要回到前端源码,修改ur ...
- Go:一个可能导致锁失效的坑
先看代码: package main import( "sync" ) var hclock sync.RWMutex func main() { a := make(map[in ...
- js async/await
一.async 带async关键字的函数,是声明异步函数,返回值是promise对象,如果async关键字函数返回的不是promise,会自动用Promise.resolve()包装. async f ...
- centos lamp 配置
# 1. 查看是否有httpd进程正在运行(下图是有的情况) ps -ef|grep httpd
- c/c++/c# 快速计算 Cumulative Normal Distribution 正态累积函数CDF
链接: http://stackoverflow.com/questions/2328258/cumulative-normal-distribution-function-in-c-c http:/ ...
- RRTI的概念以及Class对象作用
深入理解Class对象 RRTI的概念以及Class对象作用 认识Class对象之前,先来了解一个概念,RTTI(Run-Time Type Identification)运行时类型识别,对于这个词一 ...
- 文件上传Django
当Django在处理文件上传的时候,文件数据被保存在request.FILES FILES中的每个键为<input type="file" name="" ...