黑马程序员_12Tcp实例
来源:互联网 发布:淘宝女包店 编辑:程序博客网 时间:2024/06/05 08:11
------- android培训、ios培训、期待与您交流! ----------
一、服务端接受客户端的消息
//TcpClientimport java.net.*;import java.io.*;
public class TcpClient{public static void main(String[] args) throws Exception{
Socket s = new Socket("192.168.1.103",1888);Thread.sleep(3000);OutputStream os = s.getOutputStream();//无论是getInputStream还是getOutputStream 都是socket的方法而不是ServerSocket的DataOutputStream dos = new DataOutputStream(os);dos.writeUTF("hello");dos.close();s.close();
}
}
//程序在运行过程中出现了一点小差错,一开始用的是8888,结果测试老是出问题,发现只要一启用server 就会有一个client用户连接,始终找不到问题所在,最后更换端口号,测试正常,以后需要注意这么方面的问题。因为本机8888端口很有可能被其他程序已经占用,所以会有这样的提示
//TcpServerimport java.net.*;import java.io.*;public class TcpServer{
public static void main(String[] args) throws Exception{ServerSocket ss = new ServerSocket(1888);
while(true){Socket s = ss.accept();System.out.println("a client is connected");DataInputStream dis = new DataInputStream(s.getInputStream());System.out.println(dis.readUTF());dis.close();s.close();}
}
}
总结:1、编写Tcp代码时需要配合着写,先写服务端,再写客户端
2、启动程序时,也需要先启用服务端,在启用客户端
3、此外,需要灵活配合使用IO操作相关的类
二、Tcp连接实例2:获取客户端连接的Ip以及端口
//服务端程序import java.net.*;import java.io.*;public class TestTcpServer{
public static void main(String[] args){
try{ServerSocket ss = new ServerSocket(8989);Socket s = ss.accept();DataInputStream dis = new DataInputStream(s.getInputStream());System.out.println("client IP:"+s.getInetAddress()+"client PORT:"+s.getPort());System.out.println(dis.readUTF());dis.close();s.close();}catch(Exception e){System.out.println("系统错误,请连接管理员");}
}
}
//客户端程序import java.net.*;import java.io.*;public class TestTcpClient{
public static void main(String[] args){
try{Socket s = new Socket("192.168.1.103",8989);DataOutputStream dos = new DataOutputStream(s.getOutputStream());dos.writeUTF("Hello Server");dos.close();s.close();}catch(ConnectException ce){System.out.println("连接服务器失败");}catch(IOException ie){System.out.println("数据传输失败");ie.printStackTrace();}
}
}
总结:
1、需要注意的问题与实例1一样,另外服务器端可以获得连接到服务端的客户端的Ip和端口
0 0
- 黑马程序员_12Tcp实例
- 【黑马程序员】TCP实例
- 黑马程序员_08HashSet实例
- 黑马程序员_09HashMap实例
- 黑马程序员_14Udp实例
- 黑马程序员_反射实例
- 黑马程序员_java_for语句实例
- [黑马程序员]银行实例练习
- 黑马程序员—触发器的实例运用
- 黑马程序员-----面向对象实例分析
- 黑马程序员——多态_实例
- 黑马程序员__重点dom实例!
- 黑马程序员_java入门_for循环实例
- 黑马程序员—SimpleDateFormat和 properties 实例
- 黑马程序员__javascript重点实用实例!
- 黑马程序员之泛型实例
- 黑马程序员—Java实例化类
- 黑马程序员_交通灯系统实例
- DuiLib——xml配置项
- Codeforces 466 D. Increase Sequence
- static 和 const的解释
- 【数据库学习笔记】(1)JDBC驱动程序的分类
- 谷歌地图高清卫星地图下载器 13.20.160
- 黑马程序员_12Tcp实例
- 网络安装linux
- 用cygwin在windows搭建自己的linux环境
- Yii定制分页,两种分页方式CLinkPager和CListPager
- python中的元组如何定义只有一个元素
- Phalcon php 框架 中文文档
- xml文件需要对应的DTD或者xml schema才能做到提示
- Mysql中的基础函数
- linux入门教程