小编Jes*_*nga的帖子

c localhost拒绝TCP套接字连接

我正在尝试在localhost中创建一个客户端/服务器程序,但客户端无法连接到服务器,我不知道我做错了什么.

我试图调试程序,所有参数似乎都没问题.服务器确实绑定,连接,监听和接受.

使用客户端代码获取connect: Invalid argument错误.客户端(我从控制台调用客户端./client localhost):

#include <netinet/in.h>
#include <netdb.h>
#include <string.h>
#include <stdio.h>
#include <errno.h>

int main(int argc, char * argv[])
{
    int cd;
    struct hostent *hp;
    struct sockaddr_in s_ain;
    unsigned char byte;

    hp = gethostbyname(argv[1]);
    bzero((char *)&s_ain, sizeof(s_ain));
    s_ain.sin_family = AF_INET;
    memcpy(&(s_ain.sin_addr),  hp->h_addr, hp->h_length);
    s_ain.sin_port = htons(1025);

    cd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if( connect(cd, (struct sockaddr*) &s_ain, sizeof(s_ain) == -1) ) {
        fprintf(stderr, "connect: %s\n", strerror(errno));
        return -1;
    }       

    printf("%s\n", "IT WORKS!");
    close(cd);
    return …
Run Code Online (Sandbox Code Playgroud)

c sockets tcp client-server localhost

2
推荐指数
1
解决办法
2221
查看次数

增加优化标志时,如何更改二进制文件?

我已经编制了不同的优化参数相同的程序:-O0,-O1,-O2,和-O3.我用过gcc和icc.您可以在下面看到make文件的一个片段:

build-gcc-O3: CXX = g++
build-gcc-O3: BIN_POST_NAME = -gcc-O3
build-gcc-O3: OPT_FLAGS = -O3
build-gcc-O3: fluidsGL

build-icc-O0: CXX = $(INTEL_ICPC)
build-icc-O0: BIN_POST_NAME = -icc-O0
build-icc-O0: OPT_FLAGS = -O0
build-icc-O0: fluidsGL

fluidsGL: fluidsGL.o fluidsGL_cpu.o bilinear_interpolation.o defines.o
   $(CXX) $(CXXFLAGS) $(BINARY_DIR)/defines.o $(BINARY_DIR)/bilinear_interpolation.o $(BINARY_DIR)/fluidsGL_cpu.o $(BINARY_DIR)/fluidsGL.o -o $(BINARY_DIR)/$@$(BIN_POST_NAME)$(DBG_NAME_APPEND) $(OPT_FLAGS) -lGL -lGLU -lGLEW -lglut -lfftw3f
Run Code Online (Sandbox Code Playgroud)

运行make后,输出看起来很好.例如,这是icc的make结果命令-O3:

"/opt/intel/compilers_and_libraries/linux/bin/intel64/icpc" -Wall bin/defines.o bin/bilinear_interpolation.o bin/fluidsGL_cpu.o bin/fluidsGL.o -o bin/fluidsGL-icc-O3 -O3 -lGL -lGLU -lGLEW -lglut -lfftw3f
Run Code Online (Sandbox Code Playgroud)

编译后,fluidGL-gcc-O0和fluidsGL-gcc-O3(以及fluidGL-icc-O0 vs fluidsGL-icc-O3)二进制文件需要相同的磁盘空间,这对我来说似乎很奇怪:

$ ls -la bin/ …
Run Code Online (Sandbox Code Playgroud)

c++ gcc icc compiler-optimization

2
推荐指数
1
解决办法
68
查看次数

标签 统计

c ×1

c++ ×1

client-server ×1

compiler-optimization ×1

gcc ×1

icc ×1

localhost ×1

sockets ×1

tcp ×1