时间:2021-05-19
TCP
TCP协议是面向连接、保证高可靠性(数据无丢失、数据无失序、数据无错误、数据无重复到达)传输层协议。
TCP通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于端到端的通讯。
本文主要介绍了java利用TCP实现简单聊天的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。
示例代码
使用tcp协议实现的简单聊天功能(非常简单的)
思想:使用2个线程,一个线程是用来接收消息的,另一个线程是用来发消息的。
客户端Demo代码:
public class SendDemo { public static void main(String[] args) throws Exception{ Socket socket= new Socket(InetAddress.getLocalHost(),8888); SendImpl sendImpl= new SendImpl(socket); //发送的线程 new Thread(sendImpl).start(); //接收的线程 ReciveImpl reciveImpl=new ReciveImpl(socket); new Thread(reciveImpl).start(); }}服务器端Demo代码:
public class ServerDemo { public static void main(String[] args) throws Exception { ServerSocket serverSocket =new ServerSocket(8888); Socket socket=serverSocket.accept(); SendImpl sendImpl= new SendImpl(socket); new Thread(sendImpl).start(); ReciveImpl reciveImpl=new ReciveImpl(socket); new Thread(reciveImpl).start(); }}发送线程的Demo代码:
public class SendImpl implements Runnable{ private Socket socket; public SendImpl(Socket socket) { this.socket=socket; // TODO Auto-generated constructor stub } @Override public void run() { Scanner scanner=new Scanner(System.in); while(true){ try { OutputStream outputStream = socket.getOutputStream(); String string= scanner.nextLine(); outputStream.write(string.getBytes()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }}接收线程的Demo代码:
public class ReciveImpl implements Runnable { private Socket socket; public ReciveImpl(Socket socket) { this.socket=socket; // TODO Auto-generated constructor stub } @Override public void run() { while(true ){ try { InputStream inputStream = socket.getInputStream(); byte[] b=new byte[1024]; int len= inputStream.read(b); System.out.println("收到消息:"+new String(b,0,len)); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }}总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
c++回调之利用函数指针示例复制代码代码如下:#includeusingnamespacestd;/******************************
这篇文章主要介绍了简单了解Java创建线程两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下Java实现
这篇文章主要介绍了Java利用读写的方式实现音频播放代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下p
Erlang中gen_tcp用于编写TCP程序,gen_udp用于编写UDP程序。一个简单的TCP服务器echo示例:复制代码代码如下:Start_echo_s
这篇文章主要介绍了简单了解Java方法的定义和使用实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下1.