用c写的socket 为什么connect的时候老是有错,而且返回的错误码是0呢?
这里不可以使用127.0.0.1这个IP,它是指本地机的“回送”地址,不是局域网地址,所以不是可以连接的。你可以修改为自己的电脑的 本地连接 的 IP 地址!!!或者另外你可以改为一个 外网地址(这个地址要开启了你所访问的端口,默认本机对本机是所有端口都开放的)
你可以看看这里 : http://zhidao.baidu.com/question/361932224.html?loc_ans=911223528
在linux的网络编程,特别是TCP的编程中,SIGPIPE信号错误是一个比较常见的问题,我猜测你是在使用TCP的socket吧,如果是这样的话,很有可能是你在向一个已经处于关闭状态的socket写数据,因为TCP是面向连接的协议。如果对方将socket给close掉了,而你还继续往这个 socket写数据,就会触发这个信号。
因此,建议你在write之前检查一下对方是否已经close掉了这个socket。
如果回答得不对,可以继续追问哈
代码,谢谢
connect返回0,表示函数执行正确。
返回0应该就代表已经连上了吧。
树莓派 能用C语言编写socket
首先安装Xshell软件。点击New,新建一个ssh连接。名字随便起,这里我写树莓派。ip地址,写树莓派的ip,我的树莓派ip是192.168.1.222。点击OK。这样就建好ssh链接了,双击树莓派。填写的用户名,我是用的默认的pi。点击OK。填写密码,默认的是raspberry 连接成功。在命令行输入vim test.c。回车。这时...
怎样写socket要求异步通信的,能传输不大于1mb的文件,用C语言的版本
使用UDP 查看下linux关于socket的相关函数,给你写个简单的实例:include.h:include<stdio.h> include<stdlib.h> include<sys\/stat.h> include<fcntl.h> include<sys\/types.h> include<sys\/ipc.h> include<sys\/shm.h> include<string.h> include<netinet\/in.h> include<netdb.h> include<sys\/...
C语言socket编程要怎么实现服务器可以发消息给客户端?
先要理解socket是什么?简单的说socket是一个全双工的通信通道,即使用TCP或者UDP通信时均可以在发送消息的同时接受消息,它不区分是否是服务器。根据这个概念你的问题就很好回答。》当客户端与服务器连接后。有什么方法使服务器可以随时随地发消息给客户端?》我现在只能。客户端发个消息给服务器。服务器...
用c++ socket怎么实现发送文件夹
TMSG_ERROR_MSG(char cErrorMsg) : TMSG_HEADER(cErrorMsg) { }};#pragma pack()};#endif\/*server.cpp*\/#include "server.h"char g_szNewFileName[MAXFILEDIRLENGTH];char g_szBuff[MAX_PACKET_SIZE + 1];long g_lLength;char* g_pBuff = NULL;\/\/ 初始化socket库bool InitSocket();\/\/ 关闭sock...
linux C语言编程,socket实现的即使通讯系统
Socket通信创建步骤:(1)通过socket()函数创建socket(2)通过bind函数绑定socket于设备地址(3)进行读写操作read\/recv\/recvfrom write\/send\/sendto(4)close方法关闭套接字 例子如下:test1.c include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <netinet\/in.h> #...
JAVA Socket编程和C++Socket编程有什么不同
Socket 是winsock里的原始套接字开发接口API,c++\/java 他们是开发语言,而 socket 是一种通讯标准简称。首先,2者提供的接口不同(主要是封装形式不同),java 本身不带socket通讯底层实现的,而是通过调用系统底层的winsock API 进行的二次封装,而c\/c++ 的socket可以理解为 更接近 系统层面的winsock,...
c语言socket通信epoll编程
c语言socket通信epoll编程 10 利用非阻塞connect与epoll对局域网进行扫描,代码去连接一个网段的机器,当连接有用的客户端时,客户端向扫描程序发送字符串。扫描代码通过recv接受。用这个思路写代码,结果会返回错误recv: Resource temporarily unavailable。但用select替换epoll时,则无此... 展开 ...
在c语言里,socket的连接是不是只能写ip地址,不能写网址,如www.baidu...
可以写网址,假设你要使用TCP连接,要用到这样的结构:struct sockaddr_in server_addr; \/* 要连接的服务器 *\/ struct hostent *host; \/* 服务器 *\/ ...host = gethostbyname("www.baidu.com");\/* 建立socket *\/ sockfd=socket(AF_INET,SOCK_STREAM,0);\/* 填充服务器 *\/ bzero(&serv...
C语言Socket编程设计问题,非常急,急急急急急急急急~~~
1、开传输线程、等待线程和接受线程;2、设定通信标识flag,假如flag = 0 是等待,flag = 1是传输,flag = 2是接收。在没有信息时,处于等待线程状态;3、要求客户端必须配置服务器IP地址和端口号;4、定义传输数据格式,要有数据头、数据量和数据尾;5、服务器端收到数据头,将通信标识改为flag ...
socket编程。怎么实现数据包的转发?C语言版的。
我也不知道···只好复制一份···共同学习~~ 要写网络程序就必须用Socket,这是程序员都知道的。而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,Socket编程基本就是listen,accept以及send,write等几个基本的操作。是的,就跟常见的文件操作一样,只要写过就一定知道...
智祝口服: 代码,谢谢 connect返回0,表示函数执行正确.
自流井区17027305444: 用C写了个socket程序,但有时候write()函数返回Broken pipe错误,是怎么回事? - ?
智祝口服: 在linux的网络编程,特别是TCP的编程中,SIGPIPE信号错误是一个比较常见的问题,我猜测你是在使用TCP的socket吧,如果是这样的话,很有可能是你在向一个已经处于关闭状态的socket写数据,因为TCP是面向连接的协议.如果对方将socket给close掉了,而你还继续往这个 socket写数据,就会触发这个信号.因此,建议你在write之前检查一下对方是否已经close掉了这个socket.如果回答得不对,可以继续追问哈
自流井区17027305444: 我用c++编写了个socket通信程序,为什么在局域网内没事而外网交流就有问题呢? - ?
智祝口服: 架墙了吧,用了哪些端口,看看端口是不是防火墙阻断了,你写的通信程序是应用层的,更协议没关系.主要看端口是不是被拒,可以用telnet ip 端口 的方式测试,telnet就是使用的socket连接,而且请使用固定IP访问
自流井区17027305444: 怎样用C语言做socket网络编程? - ?
智祝口服: mfc只是对socket进行了一些封装,大部分人做网络编程都是用的原始的socket,比如如下接口都可以在c下进行调用 1.socket()2.bind()3.connect()4.listen()5.accept()6.send() 和recv()7.sendto() 和recvfrom()8.close() 和shutdown()9.getpeername()10.gethostname() 这些接口是在Winsock2.h中定义的不是在mfc中定义的,你只需要包含Winsock2.h头文件和Ws2_32.lib库就可以了.
自流井区17027305444: 为什么还要用c语言编写socket呢?现在java这么方便,想知道c来编socket有什么好处,尤其在linux下,谢谢! - ?
智祝口服: socket(也叫套接字)最初是在Unix系统上开发的网络通信的接口.后来微软等公司将它移植到了windows下,当然原来unix系统下的还是好用的.对于socket可以这样理解:它就是一个函数库,里面包括大量的函数和相应的数据结构,已经实...
自流井区17027305444: c语言的socket连接指针. - ?
智祝口服: 为什么要用指针呢?socket soc[100];可以的.不过建议你定义结构体保留每个客户端的信息.
自流井区17027305444: C语言的socket通信程序 亟待解救 - ?
智祝口服: 1. 分开编写简单,但并非必须,也可以在一个界面上分别设置CS选项即可,比如:2. external error的原因就很多了,函数、变量定义出问题的概率比较大
自流井区17027305444: 用c语言编写的socket客户端和服务器程序,客户端放在32位机子上,服务端放在64位机子上 怎么不能通信? - ?
智祝口服: 和32位和64位没太大关系,看一下服务机器是不是有防火墙,通信端口是否正常
自流井区17027305444: socket编程 用C++用了#include<winsock.h>为什么还说socket和closesocket未定义? - ?
智祝口服: 人家都include<winsock.h>了还linux...socket和closesocket没有找到是因为你没有加ws2_32.lib这个东西 在include下面加上#pragma comment(lib, "ws2_32")
自流井区17027305444: linux系统下的c语言的网络socket的编程,作为client端去连接服务器段,为什么之间会突然断开!求高手指点! - ?
智祝口服: 在出错函数(socket)后面用printf("%m\n");打印出来可以知道出错的原因 %m表示errno和strerror(errno) 或者不怕麻烦的话添加头文件 然后还是在出错的函数socket()后面添加打印信息printf("%d|%s\n", error, strerror(errno)); error表示该函数的出错码,后面的表示英文解释,具体的可以在linux下用慢查找 虽然这个办法笨了点.但是我只会这种方法.... 你有抓包看了吗 linux下用tcpdump -w抓到本地来看 本地用wireshark抓 一抓包啥东西都清清楚楚