草庐IT

unix-socket

全部标签

java - Socket通信,Java客户端C服务器

我正在尝试通过Java客户端和C服务器的套接字进行通信如果我尝试在命令行上使用nc连接服务器,或者如果我使用nc作为服务器并连接我的Java客户端,一切似乎都工作正常,但是当我尝试连接Java客户端和C服务器时,它不起作用。客户端启动连接,并发送消息,消息被服务器接收,但服务器的响应永远不会到达客户端。服务器代码:#include#include#include#include#include#includeintmain(intargc,char*argv[]){intsockfd,clisockfd,portno;char*start="hello";char*end="bye";

java - java.net.Socket 线程安全的方式是什么?

我有一个Socket,我正在通过BufferedReaders和BufferedWriters读取和写入。我不确定可以从单独的线程执行哪些操作。我猜想同时从两个不同的线程写入套接字是个坏主意。与同时从两个不同线程读取套接字相同。在一个线程上阅读而在另一个线程上写入怎么样?我问是因为我想让一个线程在等待更多数据时长时间阻塞读取,但在等待期间我也偶尔有数据要在套接字上发送。我不清楚这是否是线程安全的,或者我是否应该在写入之前取消读取(这会很烦人)。 最佳答案 套接字在流级别是线程不安全的。您必须提供同步。唯一的保证是无论并发性如何,您都

常见的socket函数封装和多进程和多线程实现服务器并发

常见的socket函数封装和多进程和多线程实现服务器并发1.常见的socket函数封装2.多进程和多线程实现服务器的并发2.1多进程服务器2.2多线程服务器2.3运行效果1.常见的socket函数封装accept函数或者read函数是阻塞函数,会被信号打断,我们不能让它停止,所以我们应该进行一些封装操作。//wrap.h#ifndef__WRAP_H_#define__WRAP_H_#include#include#include#include#include#include#include#includevoidperr_exit(constchar*s);intAccept(intfd,

java - ObjectInputStream(socket.getInputStream());不起作用

我正在编写一个类来与服务器通信,但是当它试图在输入流的帮助下构建ObjectInputStream时,程序卡住了。没有异常,程序仍在运行,但卡在尝试构造ObjectInputstream的行中。我的问题所在的方法代码如下:@Overridepublicvoidconnect(Stringip,intport)throwsUnknownHostException,IOException{Socketsocket=newSocket(ip,port);out=newObjectOutputStream(socket.getOutputStream());InputStreamis=sock

java - Spring Web Socket Java 客户端

如何编写基于Java的SpringWebSocket(STOMP)客户端。与在Spring中一样,我们使用stompJS仅提供基于javascript的客户端,但如果我们需要java客户端,我们应该如何实现它? 最佳答案 Spring4.1引入了一个SockJsJavaClient这对于服务器到服务器的通信和性能测试非常有用。它没有附带Stomp客户端(这当然在路线图中),但您可以查看testsinthesampleapp已经有一个实现。看来这就是您要找的东西。2015年9月8日更新:Spring4.2有一个STOMPJava客户端

【已解决】Redis错误:Could not create server TCP listening socket 127.0.0.1:6379: bind: 操作成功完成。

报错:redis服务在window下启动,报错:CouldnotcreateserverTCPlisteningsocket127.0.0.1:6379:bind:操作成功完成。原因:6379端口已绑定。应该是因为上次服务没有关闭解决方法:①依次输入命令:redis-cli.exe(启动redis客户端,连接本机6379端口(127.0.0.1)并启动redis服务)shutdownexit②启动redis服务:redis-server.exeredis.windows.conf

java - log4j:Socket Appender 如何工作?

我不确定SocketAppender是如何工作的。我知道日志记录事件被发送到特定端口。然后我们可以在控制台上打印日志或将其放入文件中。我的问题更多是关于发送日志的方式。有没有例如一个队列?它是同步的还是异步的?使用它会减慢我的程序吗?我找到了一些信息here,但我不清楚。 最佳答案 来自SocketAppender文档LoggingeventsareautomaticallybufferedbythenativeTCPimplementation.Thismeansthatifthelinktoserverisslowbutstil

Java 套接字 : Program stops at socket. getInputStream() 没有错误?

InetAddresshost=InetAddress.getLocalHost();Socketlink=newSocket(host,Integer.parseInt(args[0]));System.out.println("beforeinputstream");ObjectInputStreamin=newObjectInputStream(link.getInputStream());System.out.println("beforeoutputstream");ObjectInputStreamout=newObjectOutputStream(link.getOutp

java - 将 Unix 时间转换为 Java 中可读的日期

在Java中最简单的方法是什么?理想情况下,我将使用以毫秒为单位的Unix时间作为输入,该函数将输出类似的字符串2011年11月7日下午5:00 最佳答案 SimpleDateFormatsdf=newSimpleDateFormat("MMMMd,yyyy'at'h:mma");Stringdate=sdf.format(myTimestamp); 关于java-将Unix时间转换为Java中可读的日期,我们在StackOverflow上找到一个类似的问题:

java - 如何将日期/时间字符串转换为自 Unix 纪元以来的分钟数?

我需要将文本文件中的日期/时间转换为自unix纪元(即1970年1月1日)以来经过的分钟数:e.g.2006-01-0107:14:38.000into18934874我正在使用Java来解析文件。谢谢 最佳答案 您可以使用SimpleDateFormat类来解析时间。例如SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddkk:mm:ss.SSS");Datedate=sdf.parse("2006-01-0107:14:38.000");longtimeInMillisSince