java学习之tcp与udp的实现
package com.gh.socket; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException; /**
* tcp客户端程序
* @author ganhang
*/
public class ClientDemo {
public static void main(String[] args) {
try {
Socket sk=new Socket("",8888);
System.out.println("与服务器连接成功");
BufferedReader br=new BufferedReader(new InputStreamReader(sk.getInputStream()));
String info=br.readLine();
br.close();
System.out.println(info);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
package com.gh.socket; import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket; /**
* tcp服务器端
* @author ganhang
*
*/
public class ServerDemo {
public static void main(String[] args) {
try {
ServerSocket ss=new ServerSocket(8888);
System.out.println("服务器已启动,正在连接。。。");
Socket s=ss.accept();
String info="你好,哈哈哈\n";
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
bw.write(info);
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
package com.gh.UDP; import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/**
* UDP的接收端
* 实现消息的接收与回复
* @author ganhang
*
*/
public class UDPClientDemo {
public static void main(String[] args) {
byte[] b=new byte[1024];
DatagramPacket dp=new DatagramPacket(b, b.length);//用来接收的数据报包
try {
DatagramSocket ds=new DatagramSocket(5000);//客户端的收发套接字
System.out.println("接收端正在等待接收数据。。");
ds.receive(dp);//接收数据,该方法会造成阻塞
System.out.println("接受成功,对方地址是"+dp.getAddress().getHostName()+":"+dp.getPort());
System.out.println("对方说:"+new String(dp.getData()));
String info="你好,我是客户端";
byte b1[]=info.getBytes();
//用来发送的数据报包
DatagramPacket dp1=new DatagramPacket(b1,0,b1.length,InetAddress.getByName(""),dp.getPort());
ds.send(dp1);
System.out.println("回复成功");
ds.close();
} catch (IOException e) {
e.printStackTrace();
} }
}
package com.gh.UDP; import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress; /**
* UDP发送端
* 实现消息的发送,和接收对方的回复
* 注意:用来接收的数据报包和用来发送的数据报包的构造方法是不同的
* 同时发送有大小限制,最大为64K
* @author ganhang
*
*/
public class UDPServerDemo {
public static void main(String[] args) {
String info ="你好,我是服务器";
byte [] b= info.getBytes();
try {
DatagramSocket ds =new DatagramSocket(8000);//服务段的收发套接字
//用来发送的数据报包
DatagramPacket dp =new DatagramPacket(b,b.length,
InetAddress.getByName("localhost"),5000);
ds.send(dp);//发给客户端
System.out.println("消息发送完毕,等待回复...");
byte b1[]=new byte[1024];
DatagramPacket dp1=new DatagramPacket(b1,b1.length);//用来接收的数据报包
ds.receive(dp1);
System.out.println("对方回复:"+new String(dp1.getData()));
ds.close(); System.out.println();
} catch (IOException e) {
e.printStackTrace();
}
}
}
java学习之tcp与udp的实现的更多相关文章
- Java学习笔记-基础语法ⅩⅠ-UDP、TCP
网络编程 三要素:IP地址.端口.协议 IP地址:使用ipconfig查看,如果装了VM的话,会有VMnet1.VMnet8和WLAN,net1不能从虚拟机到主机,net8不能从主机到虚拟机,net0 ...
- 【JAVA网络流之TCP与UDP 】
一.ServerSocket java.lang.Object |-java.net.ServerSocket 有子类SSLServerSocket. 此类实现服务器套接字.服务器套接字等待请求通过网 ...
- Java基础之TCP与UDP
OSI 7层参考模型 物理层 --> 数据链路层 --> 网络层 --> 传输层 --> 会话层 --> 表示层 --> 应用层 按此顺序称为拆包,反之为封包. T ...
- Java中的TCP/UDP网络通信编程
127.0.0.1是回路地址,用于测试,相当于localhost本机地址,没有网卡,不设DNS都可以访问. 端口地址在0~65535之间,其中0~1023之间的端口是用于一些知名的网络服务和应用,用户 ...
- 【Python网络编程】利用Python进行TCP、UDP套接字编程
之前实现了Java版本的TCP和UDP套接字编程的例子,于是决定结合Python的学习做一个Python版本的套接字编程实验. 流程如下: 1.一台客户机从其标准输入(键盘)读入一行字符,并通过其套接 ...
- JAVA基础学习day24--Socket基础一UDP与TCP的基本使用
一.网络模型 1.1.OIS参考模型 1.2.TCP/IP参考模型 1.3.网络通讯要素 IP地址:IPV4/IPV6 端口号:0-65535,一般0-1024,都被系统占用,mysql:3306,o ...
- 牛客网Java刷题知识点之UDP协议是否支持HTTP和HTTPS协议?为什么?TCP协议支持吗?
不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号: 大数据躺过的坑 Java从入门到架构师 人工智能躺过的坑 ...
- 牛客网Java刷题知识点之TCP、UDP、TCP和UDP的区别、socket、TCP编程的客户端一般步骤、TCP编程的服务器端一般步骤、UDP编程的客户端一般步骤、UDP编程的服务器端一般步骤
福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号: 大数据躺过的坑 Java从入门到架构师 人工智能躺过的坑 Java全栈大联盟 ...
- [Java网络安全系列面试题] 说一说TCP和UDP的区别与联系?
TCP TCP是Transfer Control Protocol(传输控制协议)的简称,是一种面向连接的保证可靠传输的协议. 在TCP/IP协议中,IP层主要负责网络主机的定位,数据传输的路由,由I ...
随机推荐
- iOS app 集成友盟推送问题
之前做app推送主要是集成友盟SDK,在程序获取deviceToken时,老是提示如下错误: Error Domain=NSCocoaErrorDomain Code=3000 "未找到应用 ...
- SQL Server索引进阶:第一级,索引简介
这个并不是我翻译的,全文共有15篇,但我发现好多网站已经不全,所以自己整理. 原文地址: Stairway to SQL Server Indexes: Level 1, Introduction t ...
- SQLHelper简单版(基础版)
using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; usin ...
- android的快速开发框架集合
出自:http://blog.csdn.net/shulianghan/article/details/18046021 1.Afinal (快速开发框架) 简介:http://www.oschin ...
- HDU2023-求平均成绩
描述: 假设一个班有n(n<=50)个学生,每人考m(m<=5)门课,求每个学生的平均成绩和每门课的平均成绩,并输出各科成绩均大于等于平均成绩的学生数量. 输入数据有多个测试实例,每个测试 ...
- bzoj 1057: [ZJOI2007]棋盘制作 单调栈
题目链接 1057: [ZJOI2007]棋盘制作 Time Limit: 20 Sec Memory Limit: 162 MBSubmit: 2027 Solved: 1019[Submit] ...
- tomcat应用转到weblogic上时的问题
昨天将一个tomcat环境下调试通过的报表demo应用发布到weblogic上做测试,结果发现好多问题.总结了一下,主要有这么几点: 1.使用log4j的问题. tomcat应用直接发布到weblog ...
- Qt中QFtp获取带有中文的文件名称出现乱码的解决方法(执行操作前就转换编码)
今天研究了一下QFtp这个类,发现访问得到的文件名称中一旦出现中文,不管怎么转换编码格式,最终显示出来的始终都是乱码.由于编码错误,我写了两个函数用于互相转换编码. 一个是由正常编码转为QFTP上所谓 ...
- Installing on CentOS/RHEL / KB forum / Ajenti
Installing on CentOS/RHEL / KB forum / Ajenti Ajenti → KB → Installation Is it?: Inappropriate Spam ...
- powershell 生成随机用户信息
#生成随机用户信息,包括姓名.QQ.邮箱,手机号 $nameArr=@('一','丁','三','专','世','业','丝','中','丰','临','丹','丽','举','乃','义', '乐' ...