绑定方法给出错误10038(WSAENOTSOCK)

时间:2016-04-11 19:19:25

标签: c++ winapi network-programming

我遇到了bind()和sendto()方法的问题,该方法在WSAGetLastError()上给出10038,MSDN在套接字上表示无效操作。我无法理解我的代码有什么问题。我已经在TCP上测试了我的代码并且它正在工作但是在UDP上却没有用。我见过其他帖子,人们有同样的错误,但它主要是套接字关闭的问题。 提前谢谢。

import csv

file_csv = open("so.csv")
csv_reader = csv.reader(file_csv, delimiter=',', quotechar='"')
conversation = []

common_words = ['mmhmm', 'interposing', 'xblank']

headers = [header.replace(" ", "_").lower() for header in csv_reader.next()]
for data in csv_reader:
    columns = dict(zip(headers, data))
    conversation.append(columns["transcript_text"])

file_csv.close()

for i, item in enumerate(conversation):
    print(i, item)

2 个答案:

答案 0 :(得分:1)

这一行是问题所在:

  if (__ping_server_socket = socket(AF_INET, SOCK_DGRAM, 0) == SOCKET_ERROR)

__ping_server_socket设置为比较结果(truefalse,转换为整数10),而不是socket()返回的值。您需要围绕赋值括起来覆盖默认的运算符优先级。

  if ((__ping_server_socket = socket(AF_INET, SOCK_DGRAM, 0)) == SOCKET_ERROR)

答案 1 :(得分:0)

if (__ping_server_socket = socket(AF_INET, SOCK_DGRAM, 0) == SOCKET_ERROR)

优先问题。它应该是:

if ((__ping_server_socket = socket(AF_INET, SOCK_DGRAM, 0)) == SOCKET_ERROR)