Linux 网络编程时connect()返回-1,为什么会造成这种情况?求大神指教。

Linux 网络编程时connect()返回-1,为什么会造成这种情况?求大神指教。,第1张

connect()返回-1的情况很多,要打印errno和详细的错误信息来看。

在返回-1错误的地方增加下面这行代码,然后看看控制台的输出信息:

perror("Err")

然后根据错误信息到网上去搜索相应的解决方案。

Exception in thread "main" [<u style="word-break: break-allline-height: normal"> java </u>](javascript:).lang.InternalError: Can't connect to X11 window [<u style="word-break: break-allline-height: normal"> server </u>](javascript:) using 'localhost:11.0' as the value of the DISPLAY variable. at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method) at sun.awt.X11GraphicsEnvironment.<clinit style="word-break: break-allline-height: normalcolor: rgb(0, 0, 0)font-family: Arial, Helvetica, sans-seriffont-size: 12pxfont-style: normalfont-variant-ligatures: normalfont-variant-caps: normalfont-weight: normalletter-spacing: normalorphans: 2text-align: lefttext-indent: 0pxtext-transform: nonewhite-space: normalwidows: 2word-spacing: 0px-webkit-text-stroke-width: 0pxbackground-color: rgb(255, 255, 255)">(X11GraphicsEnvironment.java:134) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:141) at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62) at java.awt.Font.initializeFont(Font.java:308) at java.awt.Font.<init style="word-break: break-allline-height: normal">(Font.java:344) at org.jfree.chart.axis.AxisConstants.<clinit style="word-break: break-allline-height: normal">(Unknown Source) at org.jfree.chart.axis.Axis.<init style="word-break: break-allline-height: normal">(Unknown Source) at org.jfree.chart.axis.CategoryAxis.<init style="word-break: break-allline-height: normal">(Unknown Source) at org.jfree.chart.ChartFactory.createLineChart(Unknown Source) </init></init></clinit></init></clinit>

<clinit style="word-break: break-allline-height: normal !important"><init style="word-break: break-allline-height: normal !important"><clinit style="word-break: break-allline-height: normal !important"><init style="word-break: break-allline-height: normal !important"><init style="word-break: break-allline-height: normal !important">linux上就报以上错误原因是windows内核集成了gui,而linux上没有启动x server</init></init></clinit></init></clinit>

<clinit style="word-break: break-allline-height: normal !important"><init style="word-break: break-allline-height: normal !important"><clinit style="word-break: break-allline-height: normal !important"><init style="word-break: break-allline-height: normal !important"><init style="word-break: break-allline-height: normal !important">解决办法:</init></init></clinit></init></clinit>

<clinit style="word-break: break-allline-height: normal !important"><init style="word-break: break-allline-height: normal !important"><clinit style="word-break: break-allline-height: normal !important"><init style="word-break: break-allline-height: normal !important"><init style="word-break: break-allline-height: normal !important">1、启动x server2。在java运行参数上加-Djava.awt.headless=true ,应该是在/usr/java/jdk1.6.0_23/bin文件夹下的javac文件中</init></init></clinit></init></clinit>

<clinit style="word-break: break-allline-height: normal !important"><init style="word-break: break-allline-height: normal !important"><clinit style="word-break: break-allline-height: normal !important"><init style="word-break: break-allline-height: normal !important"><init style="word-break: break-allline-height: normal !important">2、单个程序的启动脚本中增加java的运行参数,比如tomcat</init></init></clinit></init></clinit>

<clinit data-filtered="filtered" style="word-break: break-allline-height: normal !important"><init data-filtered="filtered" style="word-break: break-allline-height: normal !important"><clinit data-filtered="filtered" style="word-break: break-allline-height: normal !important"><init data-filtered="filtered" style="word-break: break-allline-height: normal !important"><init data-filtered="filtered" style="word-break: break-allline-height: normal !important">/bin/catalina.sh在 所有的(请注意,是所有) -Dcatalina.home="$CATALINA_HOME" /

下面都加上了-Djava.awt.headless=true</init></init></clinit></init></clinit>

一般经过创建套接字socket()绑定bind()以及listen()之后, 就可以调用 accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen)判断是否有客户端发起链接请求, 不用accept()改用select()可以吗,select(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set *errorfds,struct timeval *timeout) 中哪个参数跟客户端有关?


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7302739.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-04
下一篇2023-04-04

发表评论

登录后才能评论

评论列表(0条)

    保存